diff --git a/hugo/content/es/account_management/governance_console/telemetry_rules.md b/hugo/content/es/account_management/governance_console/telemetry_rules.md new file mode 100644 index 00000000000..70daaba3e0c --- /dev/null +++ b/hugo/content/es/account_management/governance_console/telemetry_rules.md @@ -0,0 +1,110 @@ +--- +description: Utilice reglas de telemetría para controlar las etiquetas, la indexación + y otras características de sus métricas, logs y spans. +further_reading: +- link: /api/latest/tag-rules/ + tag: Documentación + text: Tag Visibility and Enforcement Rules API +- link: /account_management/governance_console/ + tag: Documentación + text: Governance Console +- link: /account_management/governance_console/controls + tag: Documentación + text: Controles de Governance Console +- link: /metrics/guide/tag-indexing-rules/ + tag: Documentación + text: Reglas de indexación de etiquetas +- link: /metrics/guide/agent-filtering-for-custom-metrics + tag: Documentación + text: Filtrado del Agent para Custom Metrics +is_beta: true +private: true +title: Reglas de telemetría +--- +{{< beta-callout url="#" btn_hidden="true" header="false" >}} +Las reglas de telemetría están en Preview. Si observa algún problema o desea proponer una nueva función, utilice el botón Give Feedback en la interfaz de usuario del producto. +{{< /beta-callout >}} + +## Descripción general {#overview} + +Las reglas de telemetría ayudan a los administradores a controlar las características de sus métricas, logs y spans desde la Governance Console, para reducir los costos de telemetría no deseada. Las reglas de telemetría pueden ayudar a estandarizar el etiquetado, gestionar el volumen ingerido e indexado, y minimizar la telemetría no utilizada o redundante. + +## Requisitos previos {#prerequisites} + +Necesita el permiso `governance_console_read` para ver las reglas de telemetría. Para crear, editar o eliminar reglas, necesita el permiso `telemetry_rules_write` o el rol de Datadog Admin. Para habilitar el filtrado en una regla, necesita el permiso `telemetry_rules_enforcement_write`. + +
Algunos tipos de reglas podrían requerir permisos adicionales o versiones del Agent. Consulte las páginas de cada tipo de regla para obtener más información.
+ +## Tipos de reglas de telemetría {#telemetry-rule-types} + +| Tipo de regla | Tipo(s) de telemetría | Aplicado en | Descripción | +|---|---|---|---| +| Visibilidad y cumplimiento de etiquetas | Métricas, logs, spans | Ingesta | Determina si las etiquetas y los valores de telemetría cumplen con las normas y, opcionalmente, descarta la telemetría que no cumple durante la ingesta. | +| Indexación de etiquetas | Métricas | Ingesta | Determina las etiquetas de métricas personalizadas que deben indexarse para una métrica determinada. | +| Filtrado de nombres de métricas | Métricas | Agent | Descarta Custom Metrics de un nombre determinado directamente en el Datadog Agent, antes de la ingesta. | + +## Reglas de visibilidad y cumplimiento de etiquetas {#tag-visibility-and-enforcement-rules} + +### Crear una regla de visibilidad de etiquetas {#create-a-tag-visibility-rule} + +1. Navegue a [Governance Console > Telemetría](https://app.datadoghq.com/governance/telemetry) y haga clic en **+ Crear nueva regla**. +2. Seleccione el tipo de señal (**Métricas**, **APM** o **logs**) y el tipo de regla **Visibilidad y cumplimiento de etiquetas**. +3. Seleccione el contexto. Elija **Todos [Spans/Métricas/logs]** para aplicar la regla a toda la telemetría del tipo seleccionado. Elija **Seleccionados [Spans/Métricas/logs]** para limitar la regla a un subconjunto, luego ingrese una consulta de etiqueta, por ejemplo, `service:web-store` o `env:prod AND team:payments`. La misma sintaxis de consulta utilizada en los monitores y dashboards se aplica aquí. +4. Defina la clave de etiqueta. Ingrese la clave de etiqueta que desea hacer cumplir (por ejemplo, `env` o `team`). Seleccione **La clave de etiqueta debe estar presente** para marcar la telemetría a la que le falta la clave como no conforme. + +
Si no se selecciona La clave de etiqueta debe estar presente, una regla solo evalúa la telemetría que ya tiene la clave de etiqueta especificada. La telemetría sin la clave no se evalúa y se considera conforme.
+5. Especifique los valores de etiqueta. Seleccione **Valores de etiqueta permitidos** para definir una lista de permitidos, o **Valores de etiqueta no permitidos** para definir una lista de bloqueados. Ingrese los valores como una lista separada por comas; se admiten comodines (por ejemplo, `us*` coincide con `us-east-1` y `us-west-2`). +6. Nombre su regla. Ingrese una descripción que explique lo que la regla hace cumplir, por ejemplo, *Requerir etiqueta de equipo en todos los recursos*. + +
No puede activar Filtrar datos en la ingesta hasta después de crear la regla.
+7. Haga clic en **Crear regla**. + +{{< img src="account_management/governance_console/telemetry_rules/creating_telemetry_rule.mp4" alt="Creación de una regla de visibilidad de etiquetas en Governance Console" video="true" style="width:100%;" >}} + +### Revise el cumplimiento de la regla de visibilidad de etiquetas {#review-tag-visibility-rule-compliance} + +Después de crear una regla de visibilidad de etiquetas, Datadog comienza a realizar un seguimiento del cumplimiento en toda la telemetría coincidente. Abra una regla para ver: + +- **Puntuación de cumplimiento**: El porcentaje de spans, métricas o eventos de registro dentro del alcance que cumplen la regla, calculado durante el período de tiempo seleccionado. Una puntuación de cumplimiento del 100% significa que toda la telemetría coincidente cumple con la regla. Una puntuación del 0% significa que ninguna de la telemetría coincidente cumple con la regla. +- **Puntuación a lo largo del tiempo**: Un gráfico que muestra cómo ha evolucionado el cumplimiento. Utilice el selector de tiempo para ver la tendencia en su marco temporal preferido. Este gráfico no está disponible para métricas, y el historial de métricas está limitado a las últimas 8 horas. +- **Telemetría no conforme**: Una tabla que muestra los spans, métricas o log events individuales que infringen la regla, con el nombre del servicio, el recurso y detalles adicionales específicos de la señal. Haga clic en una fila para ver más detalles sobre la telemetría en cuestión. Para reglas en spans, haga clic en **Ver en Trace** para abrir los spans no conformes directamente en el explorador de trazas. + +### Haga cumplir el cumplimiento de etiquetas mediante filtrado {#enforce-tag-compliance-through-filtering} + +Después de crear y revisar una regla de visibilidad de etiquetas, puede hacerla cumplir filtrando la telemetría no conforme en la ingesta. + +
Las reglas de filtrado pueden causar pérdida permanente de datos si se configuran incorrectamente. Existe un tiempo de espera obligatorio de 5 minutos entre la creación de una regla de visibilidad de etiquetas y la habilitación del filtrado.
+ +Para habilitar el filtrado: + +1. Navegue a la regla de visibilidad de etiquetas correspondiente y ábrala. +2. Revise cuidadosamente la descripción de la regla, la puntuación de cumplimiento y la telemetría que no cumple con las normas. +3. Aplique la regla activando **Filtrar datos en la ingesta** en **Acción de la regla**. +4. Confirme la aplicación del filtrado ingresando y enviando el texto requerido. + +La regla comienza a filtrar inmediatamente la telemetría que no cumple con las normas en la ingesta. Las muestras de telemetría no conformes se registran en el [Audit Trail](/account_management/audit_trail/). Puede ver estas muestras navegando a la regla, luego desplazándose por la tabla o haciendo clic en **View in Audit Trail**. + +{{< img src="account_management/governance_console/telemetry_rules/enforcing_telemetry_rule.mp4" alt="Aplicación de una regla de visibilidad de etiquetas y visualización de telemetría filtrada" video="true" style="width:100%;" >}} + +## Editar o eliminar una regla {#edit-or-delete-a-rule} + +Haga clic en el menú **⋮** en cualquier fila de regla para editarla o eliminarla. Los cambios surten efecto de inmediato, incluso si una regla está filtrando o descartando telemetría activamente, y los datos de cumplimiento de reglas anteriores no se conservan. + +## Otras reglas {#other-rules} + +Puede crear y administrar reglas específicas para métricas desde la Governance Console. Alternativamente, puede administrar estas reglas desde Metrics Settings. Para obtener detalles específicos de la regla, consulte la documentación de referencia a continuación: + +- [Indexación de etiquetas](/metrics/guide/tag-indexing-rules/) +- [Filtrado de nombres de métricas](/metrics/guide/agent-filtering-for-custom-metrics) + +## Limitaciones {#limitations} + +- Puede crear hasta 10 reglas por tipo de señal (los spans, las métricas y los logs tienen cada uno un límite independiente de 10). +- Una regla de visibilidad y cumplimiento de etiquetas puede especificar hasta 30 valores de etiqueta. +- Las reglas de telemetría no están disponibles para tipos de telemetría fuera de métricas, logs y spans. + +Si su estrategia de etiquetado requiere más reglas o valores de etiqueta, comuníquese con su equipo de cuenta de Datadog para solicitar un límite mayor. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/es/account_management/plan_and_usage/bill_overview.md b/hugo/content/es/account_management/plan_and_usage/bill_overview.md deleted file mode 100644 index bef5a9ee526..00000000000 --- a/hugo/content/es/account_management/plan_and_usage/bill_overview.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -description: Visualice los costos de Datadog, las tendencias de uso y los costos proyectados - a fin de mes en una sola página, con desgloses diarios, detalles a nivel de producto - y filtrado multi-organización. -further_reading: -- link: account_management/plan_and_usage/cost_details/ - tag: Documentación - text: Detalles de costos -- link: account_management/plan_and_usage/usage_details/ - tag: Documentación - text: Detalles de uso -- link: account_management/billing/usage_attribution/ - tag: Documentación - text: Atribución de uso -- link: cloud_cost_management/datadog_costs/ - tag: Documentación - text: Costos de Datadog -title: Resumen de facturación ---- -Visualice los costos de Datadog, las tendencias de uso y los costos proyectados a fin de mes en una sola página, con desgloses diarios, detalles a nivel de producto y filtrado multi-organización. - -La [página **Resumen de facturación**][1] ofrece a los administradores una visualización única de los costos y el uso de Datadog. Se habilita automáticamente durante el despliegue gradual que comienza en marzo de 2026. - -## Filtros globales {#global-filters} - -Los siguientes filtros se aplican a la {{< ui >}}Bill Overview{{< /ui >}} página: - -- {{< ui >}}Product Category{{< /ui >}}: Filtre todas las vistas por familia de productos más amplia, como Infraestructura, APM, Logs, Security o IA/ML. -- {{< ui >}}Billing Dimension{{< /ui >}}: Filtre por una dimensión de facturación o medición específica (por ejemplo, servidores de infraestructura, registros indexados o pruebas de navegador sintéticas). -- {{< ui >}}Sub-Org{{< /ui >}}: Filtre por una organización secundaria específica. -- {{< ui >}}Group by Sub-Org{{< /ui >}}: Cambie para agrupar los costos por suborganización. -- {{< ui >}}Time range{{< /ui >}}: Seleccione un período de facturación. Utilice las flechas hacia atrás y hacia adelante para navegar de un mes a otro. - -## Resumen de costos {#cost-summary} - -En la parte superior de la página, el resumen de costos muestra: - -- {{< ui >}}Estimated cost to date{{< /ui >}}: Costo total estimado para los días transcurridos en el período de facturación actual -- {{< ui >}}Projected total{{< /ui >}}: Costo total estimado si los patrones de uso actuales continúan hasta fin de mes, con el cambio porcentual mes a mes - -## Desglose diario de costos {#daily-cost-breakdown} - -Debajo del resumen de costos, el {{< ui >}}Daily Cost Breakdown{{< /ui >}} gráfico de barras apiladas muestra los costos desglosados por dimensión de facturación para cada día del período seleccionado. Cada color en el gráfico representa una dimensión de facturación diferente. Haga clic en el icono de expandir para visualizar el gráfico en pantalla completa. - -{{< img src="account_management/plan_and_usage/bill-overview-main-light.png" alt="Página de Resumen de facturación que muestra el encabezado de resumen de costos, el gráfico de barras apiladas de Desglose de costos diarios y la pestaña Tendencias" >}} - -## Pestaña Tendencias {#trends-tab} - -La {{< ui >}}Trends{{< /ui >}} pestaña muestra productos que vale la pena investigar según cuatro opciones de ordenamiento: - -- {{< ui >}}Highest % Cost Change{{< /ui >}} -- {{< ui >}}Highest Cost Change ($){{< /ui >}} -- {{< ui >}}Highest Total Cost{{< /ui >}} -- {{< ui >}}Highest % Usage Change{{< /ui >}} - -Seleccione una opción de ordenamiento para actualizar las tarjetas mostradas. Cada tarjeta de producto muestra: - -- {{< ui >}}Total Cost{{< /ui >}} para el período -- {{< ui >}}Projected EOM{{< /ui >}} costo -- {{< ui >}}Month-over-month change{{< /ui >}}, mostrado como un distintivo de porcentaje -- {{< ui >}}Daily Cost{{< /ui >}} gráfico de barras que abarca el mes anterior y el actual -- {{< ui >}}Usage{{< /ui >}}, mostrado como unidades totales consumidas, en unidades naturales; por ejemplo, PB (petabytes) de datos escaneados, Custom Metrics; mostrado solo en las tarjetas relacionadas con el Costo total y el Uso - -Haga clic en {{< ui >}}View Details{{< /ui >}} en cualquier tarjeta para abrir la [página de detalles del producto][2]. - -{{< img src="account_management/plan_and_usage/bill-overview-trends-light.png" alt="Pestaña Tendencias que muestra tarjetas de producto ordenadas por Mayor costo total" >}} - -## Pestaña Lista de productos {#product-list-tab} - -La {{< ui >}}Product List{{< /ui >}} pestaña muestra todas las dimensiones de facturación en una tabla con el costo y el uso lado a lado. - -Haga clic en cualquier parte de una fila de producto para abrir la [página de detalles del producto][2]. Pase el cursor sobre el final de una fila para crear rápidamente un monitor de costos para esa dimensión de facturación. - -#### Columnas de la tabla {#table-columns} - -| Columna | Descripción | -|---|---| -| Dimensión de facturación | Nombre del producto o dimensión de facturación | -| Costo — Total | Costo facturado hasta la fecha para el período | -| Costo — Proy. EOM | Costo total proyectado a fin de mes | -| Costo — Cambio | Cambio en dólares y porcentaje frente al período anterior | -| Uso — Total | Uso total en unidades naturales | -| Uso — Cambio | Cambio en el uso frente al período de comparación | - -Alterne entre las vistas {{< ui >}}Monthly{{< /ui >}} y {{< ui >}}Daily{{< /ui >}} usando los controles sobre la tabla. Descargue la tabla completa como un archivo `.csv` usando el botón {{< ui >}}Download as CSV{{< /ui >}}. La tabla está paginada y muestra 10 filas por página de forma predeterminada. - -{{< img src="account_management/plan_and_usage/bill-overview-product-list-light.png" alt="Pestaña Lista de productos que muestra la tabla de dimensiones de facturación con las columnas de Costo y Uso" >}} - -## Página de detalles del producto {#product-detail-page} - -Haga clic en {{< ui >}}View Details{{< /ui >}} en una tarjeta de Tendencias o haga clic en cualquier fila de la tabla {{< ui >}}Product List{{< /ui >}} para abrir la página de detalles del producto para una sola dimensión de facturación. - -{{< img src="account_management/plan_and_usage/bill-overview-detail-light-2.png" alt="Página de detalles del producto que muestra las secciones Resumen de costos y Resumen de uso, incluido el botón Descargar servidores facturables como CSV." >}} - -### Resumen de costos {#cost-overview} - -- {{< ui >}}Total Cost{{< /ui >}}: Costo total facturado hasta la fecha para el período seleccionado -- {{< ui >}}Projected Cost Change{{< /ui >}}: El cambio proyectado en dólares y porcentaje frente al período anterior -- {{< ui >}}Projected EOM{{< /ui >}}: Costo total estimado a fin de mes -- {{< ui >}}Daily Cost{{< /ui >}} gráfico de barras: costo diario del mes anterior y el actual, con el mes actual resaltado. Pase el cursor sobre cualquier barra para ver el costo de ese día. Active {{< ui >}}Show Usage Charges Only{{< /ui >}} para aislar los cargos bajo demanda. -- {{< ui >}}Drilldown in Cloud Cost{{< /ui >}}: haga clic para abrir Cloud Cost Management, prefiltrado según la dimensión de facturación seleccionada. - -### Resumen de uso {#usage-overview} - -- {{< ui >}}Total Usage{{< /ui >}}: total de unidades consumidas durante el período seleccionado -- {{< ui >}}Usage Change{{< /ui >}}: cambio en el uso frente al período anterior (cantidad y porcentaje) -- {{< ui >}}Usage breakdown by sub-dimension{{< /ui >}}: totales de uso individual para cada subdimensión. Por ejemplo, Sensitive Data Scanner lista por separado los eventos escaneados, los registros escaneados, las sesiones RUM escaneadas y los spans escaneados. -- {{< ui >}}Usage Types{{< /ui >}} gráfico de barras: uso diario apilado por subdimensión -- {{< ui >}}Allotment Usage{{< /ui >}}: barra de progreso que muestra el consumo frente a la asignación contratada; muestra \">100%\" cuando el uso supera la asignación -- {{< ui >}}Drilldown in Usage Attribution{{< /ui >}}: Haga clic para abrir {{< ui >}}Usage Attribution{{< /ui >}}, prefiltrado según la dimensión de facturación seleccionada. -- {{< ui >}}Download Billable Hosts as CSV{{< /ui >}}: para servidores de infraestructura, descargue como CSV los servidores individuales que conforman su total facturable. - -### Descargar servidores facturables como CSV {#download-billable-hosts-as-csv} - -{{< site-region region="gov,gov2" >}} -
La descarga de servidores facturables como CSV no es compatible con su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
-{{< /site-region >}} - -Descargue un CSV de los servidores individuales que conforman su total facturable de servidores de infraestructura para un mes determinado. Úselo para conciliar el total que se muestra en la página de resumen de facturación, encontrar los servidores que generan la mayor parte de su recuento, atribuir el uso a los equipos mediante etiqueta o comparar meses para detectar cambios inesperados. - -Para exportar la lista: - -1. En el panel lateral, use el selector de mes en la parte superior derecha para elegir un mes. Solo puede exportar datos de meses calendario completos. -2. En {{< ui >}}Usage Overview{{< /ui >}}, haga clic en {{< ui >}}Download Billable Hosts as CSV{{< /ui >}}. - -El CSV contiene una fila por servidor con las siguientes columnas: - -| Columna | Descripción | -|---|---| -| `Org Name` | Nombre de la organización. | -| `Public ID` | El identificador público de la organización. | -| `Timestamp` | Para las organizaciones facturadas al percentil 99, la hora del mes en la que se midió el uso en el percentil 99. Para las organizaciones facturadas sobre una base de suma, el primer día del mes. | -| `Resource Type` | El tipo de recurso, por ejemplo `agent`, `aws` o `vsphere`. | -| `Resource Name` | El nombre o identificador del servidor, por ejemplo un nombre de servidor o ID de instancia. | -| `Usage Value` | Para las organizaciones facturadas al percentil 99, `1` por servidor. Para las organizaciones facturadas sobre una base de suma, las horas de servidor del servidor durante el mes, por ejemplo `720` para un servidor presente durante un mes completo de 30 días. | -| `Tags` | Un objeto JSON de las etiquetas clave-valor del servidor. Vacío (`{}`) cuando el servidor no tiene etiquetas. | - -La suma de `Usage Value` en todas las filas coincide con el total de servidores de infraestructura que se muestra en la página de Resumen de facturación: un recuento de servidores para las organizaciones facturadas al percentil 99 y horas de servidor para las organizaciones facturadas sobre una base de suma. - -## Volver al diseño anterior {#revert-to-the-previous-layout} - -Si su organización está en el nuevo {{< ui >}}Bill Overview{{< /ui >}} y prefiere el diseño anterior, haga clic en {{< ui >}}Disable Preview{{< /ui >}} en el encabezado de la página. Este interruptor está disponible para todas las organizaciones y persiste durante su sesión. - -{{< img src="account_management/plan_and_usage/toggle-back-header.png" alt="Encabezado de la página de Resumen de facturación que muestra el botón Deshabilitar vista previa" >}} - -Para volver a {{< ui >}}Bill Overview{{< /ui >}}, haga clic en {{< ui >}}Enable Preview{{< /ui >}} en el encabezado. - -## Permisos {#permissions} - -Se requieren los siguientes permisos para acceder a cada sección de Resumen de facturación: - -| Sección | Permiso requerido | -|---|---| -| Resumen de facturación (datos de costos) | `BILLING_READ` | -| Usage Tab | `USAGE_READ` | -| Detalles del plan | `BILLING_READ` | -| Historial de facturación | `BILLING_READ` | -| Atribución de uso | `USAGE_READ` + Plan Enterprise o Pro | -| Tendencias de costos de la suborganización | La organización principal debe tener `suborg_cost_trends` habilitado | - -Para obtener información sobre la administración de permisos, consulte [Role Based Access Control][3]. - -## Lecturas adicionales {#further-reading} - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: https://app.datadoghq.com/billing/bill-overview -[2]: /es/account_management/plan_and_usage/bill_overview/#product-detail-page -[3]: /es/account_management/rbac/ \ No newline at end of file diff --git a/hugo/content/es/actions/private_actions/execution_policies.md b/hugo/content/es/actions/private_actions/execution_policies.md new file mode 100644 index 00000000000..686c7ca4f3f --- /dev/null +++ b/hugo/content/es/actions/private_actions/execution_policies.md @@ -0,0 +1,151 @@ +--- +description: Controle a qué Datadog Agents puede dirigir su equipo con acciones privadas + y qué acciones pueden ejecutar, utilizando Políticas de ejecución. +disable_toc: false +further_reading: +- link: /actions/private_actions/ + tag: Documentación + text: Descripción general de Private Actions +- link: /actions/private_actions/enroll_runner/ + tag: Documentación + text: Inscripción y propiedad +- link: /actions/private_actions/authorize_private_actions/ + tag: Documentación + text: Autorizar Private Actions +- link: /actions/connections/ + tag: Documentación + text: Conexiones +title: Políticas de ejecución +--- +## Descripción general {#overview} + +Las Políticas de ejecución le permiten controlar quién, dónde y qué acciones puede ejecutar su equipo. Cada Política de ejecución es una regla única de permitir o denegar para un conjunto de acciones, junto con los Agents a los que se aplica. Usted selecciona esos Agents mediante etiquetas de Agent. Las Políticas de ejecución le brindan dos ventajas principales al autorizar Private Actions: + +- **Administre el acceso a escala**: Con [Connections][1], usted crea una conexión por integración en cada runner, lo cual se vuelve difícil de administrar en una flota grande. Las Políticas de ejecución le permiten controlar el acceso a muchos runners a la vez seleccionando Agents con etiquetas. Una sola política también puede listar más de un conjunto de Agents de destino, por lo que la misma regla puede cubrir varios equipos o entornos sin duplicarse. +- **Control detallado**: Puede permitir o denegar acciones específicas o conjuntos de acciones, y aplicar contextos específicos de la integración, como limitar una política de Kubernetes a espacios de nombres de destino específicos. + +Las Políticas de ejecución se aplican a los runners de Private Actions que se ejecutan **dentro del Datadog Agent** y que se inscribieron como *sin propietario*. Un runner sin propietario se inscribe con una clave de API que tiene la capacidad de Private Action Runner, en lugar de estar vinculado a un usuario específico. Para saber cómo un runner se vuelve sin propietario, consulte [Enrollment and ownership][2]. + +## Requisitos previos {#prerequisites} + +- Un runner de Private Actions que se ejecuta **en el Datadog Agent** inscrito como sin propietario (usando una clave de API con la capacidad de Private Action Runner). +- El `ExecutionGroupWrite` permiso, que le permite crear, actualizar y eliminar Políticas de ejecución. Consulte [Permisos](#permissions). + +## Permisos {#permissions} + +La creación, actualización y eliminación de Políticas de ejecución requieren el permiso `ExecutionGroupWrite`. + +- El rol predeterminado **Datadog Admin** incluye este permiso. +- Para otorgarlo a otros usuarios, agréguelo a un [rol personalizado][3] y asigne ese rol a los usuarios o equipos que administran las Políticas de ejecución. + +Este permiso controla quién puede **administrar** las Políticas de ejecución. Para controlar quién puede **usar** una Política de ejecución específica para ejecutar acciones privadas, consulte la configuración de [Acceso](#access) de esa política. + +## Estructura de la política {#policy-structure} + +Una Política de ejecución es una regla única de permitir o denegar para un conjunto de acciones privadas. Está compuesta por componentes, que incluyen las acciones que cubre y los Agentes de destino a los que se aplica. + +Las secciones [Destinos](#targets) y [Acceso](#access) describen esos componentes en detalle. Para crear una Política de ejecución con todos sus componentes, consulte la sección [Crear una Política de ejecución](#create-an-execution-policy). + +{{% collapse-content title="Destinos" level="h3" id="targets" %}} + +Los Destinos son los selectores de etiquetas que eligen a qué Agent (que ejecuta un runner de acciones privadas) se aplica una Política de ejecución. Una política puede definir más de un destino, por lo que la misma regla puede cubrir más de un conjunto de Agentes sin duplicar la política. Por ejemplo, puede definir un destino por equipo o por entorno. + +Cada destino es un conjunto de etiquetas: + +- Las etiquetas se comparan con semántica **AND**. Un Agent debe tener **todas** las etiquetas de un destino para coincidir con él. +- Para coincidir con cada Agent que tenga habilitado un ejecutor de acciones privadas, utilice un comodín `*` por sí solo como destino. +- Los comodines parciales o con patrones como `env:*` o `*:prod`, y la combinación de `*` con otras etiquetas, **no son compatibles**. +- Opcionalmente, asigne un nombre a un destino para ayudar a distinguir varios destinos en la misma política. + +A medida que edita las etiquetas de un destino, Datadog muestra un conteo en tiempo real de cuántos Agents coinciden con él. + +Una política de ejecución sin destinos es válida, pero no tiene efecto. Nunca coincide con un Agent, por lo que nunca autoriza nada. Datadog etiqueta estas políticas como "no tiene destinos" para que sepa que debe completarlas o eliminarlas. + +{{% /collapse-content %}} + +{{% collapse-content title="Acceso" level="h3" id="access" %}} + +Las políticas de ejecución tienen configuraciones de **Acceso** que controlan quién puede verlas y administrarlas, y a quién se aplica una política. El acceso funciona junto con el permiso [`ExecutionGroupWrite` ](#permissions). El permiso decide quién puede administrar las políticas de ejecución en absoluto, mientras que el acceso decide qué políticas específicas puede ver, editar o por cuáles puede ser regido cada usuario. + +Las políticas de ejecución no almacenan credenciales. El acceso controla únicamente la segmentación y la autorización. + +| Nivel de acceso | Puede ver | Puede editar | La política se les aplica | +|---|:---:|:---:|:---:| +| **Visualizador** | Sí | No | No | +| **Resolutor** | Sí | No | Sí | +| **Editor** | Sí | Sí | Sí | + +Si una política "se aplica a" un usuario es lo que conecta Access con la autorización. Una política de **Permitir** otorga sus acciones solo a los usuarios a los que se aplica, y una política de **Denegar** restringe solo a los usuarios a los que se aplica. Un **Visualizador** puede ver la política, pero nunca se le otorgan ni se le restringen permisos mediante ella. + +Cuando crea una política de ejecución, usted se convierte en su editor. Si una política no tiene configuraciones de acceso, se aplica a todos en su organización. + +{{% /collapse-content %}} + +## Cree una política de ejecución {#create-an-execution-policy} + +1. Vaya a [**Actions > Execution Policies**][4] y haga clic en **Create Execution Policy**. +2. Ingrese un **Name** (por ejemplo, `Read-only Kubernetes`) o use el generado automáticamente. +3. Establezca el **Effect** en **Allow** o **Deny**. +4. En **Actions**, elija una integración y las acciones a incluir. Puede seleccionar acciones específicas, seleccionar paquetes completos o usar los selectores especiales **All actions** / **All read-only**. +5. Opcionalmente, establezca un contexto. Por ejemplo, para Kubernetes, establezca **Espacios de nombres de destino** para limitar la política a espacios de nombres específicos. +6. En **Destinos**, agregue una o más etiquetas para seleccionar los Agents a los que se aplica esta política. Un Agent debe tener todas las etiquetas en un destino para coincidir con él. Para apuntar a cada Agent que tenga habilitado un ejecutor de acciones privadas sin propietario, use un comodín `*` por sí solo. Agregue más de un destino para aplicar la misma política a más de un conjunto de Agents. Para obtener más información, consulte la sección [Destinos](#targets). +7. En **Acceso**, establezca quién puede visualizar, editar y a quién se aplica la política. Para obtener más información, consulte la sección [Acceso](#access). +8. Haga clic en **Create**. + +## Utilice una política de ejecución en un flujo de trabajo {#use-an-execution-policy-in-a-workflow} + +Cuando configure un paso de acción privada en un flujo de trabajo, puede apuntar a un Agent directamente en lugar de seleccionar una conexión: + +1. En el selector de conexiones del paso, elija **Target** en lugar de **Connection**. +2. Seleccione cómo identificar al Agent: + - **Hostname**: para un ejecutor de acciones privado en un host específico del Datadog Agent. + - **Orch Cluster ID**: para un ejecutor de acciones privado en un Kubernetes Cluster Agent. +3. Ingrese el Hostname o el Orch Cluster ID del Agent de destino. + +Esto crea una conexión virtual para el paso, identificada solo por el Agent de destino; no conlleva credenciales. Cuando se ejecuta el flujo de trabajo, la acción se ejecuta solo si una política de ejecución la autoriza para ese destino y el usuario que la solicita. + +## Integraciones admitidas {#supported-integrations} + +Las políticas de ejecución autorizan acciones para las siguientes integraciones: + +- **Kubernetes** (`com.datadoghq.kubernetes.*`) +- **Remote Action** (`com.datadoghq.remoteaction.*`), que incluye el rshell bundle (la `runCommand` action) y acciones de ruta de red. +- **Script** (`com.datadoghq.script.*`). + +La [Referencia del ejecutor de acciones privado][5] muestra qué acciones admite cada tipo de ejecutor. Si su integración no se puede autorizar mediante políticas de ejecución, utilice [Conexiones][1] en su lugar. + +## Políticas de ejecución predeterminadas {#default-execution-policies} + +Datadog aprovisiona políticas de ejecución predeterminadas en su organización para que las acciones de solo lectura funcionen tan pronto como se registre un ejecutor. No se requiere ninguna configuración propia. Estas: + +- Apunte a cada Agent que ejecute un Private Action Runner (target selector `*`). +- Otorgan **Kubernetes de solo lectura** y **Acción remota de solo lectura** acciones. +- Permiten que **todos en su organización** ejecuten esas acciones de solo lectura. Los usuarios que tienen el permiso `ExecutionGroupWrite`, que el rol de Datadog Admin incluye de forma predeterminada, también pueden editarlas. + +Las políticas de ejecución predeterminadas cubren solo acciones de solo lectura. Para ejecutar acciones con capacidad de escritura, o para limitar el acceso a Agents, espacios de nombres, equipos o usuarios específicos, consulte [Crear una política de ejecución](#create-an-execution-policy). + +## Flujo de trabajo de autorización {#authorization-workflow} + +Debido a que la autorización ocurre en Datadog antes de que se envíe una tarea, el ejecutor solo realiza acciones que ya han sido autorizadas. Cuando se solicita una acción privada contra un Private Action Runner en el Datadog Agent: + +1. Datadog identifica el **target Agent** (por nombre de host o ID de clúster de orquestación) y sus etiquetas. +2. Datadog encuentra las políticas de ejecución cuyos **Targets** coinciden con esas etiquetas. +3. Datadog evalúa las **Políticas** coincidentes para la acción solicitada y el usuario que la solicita. +4. Si una política permite la acción y ninguna política la deniega, la tarea se envía al Agent, el cual la ejecuta. De lo contrario, la acción se deniega y nunca llega al Agent. + +La evaluación sigue dos reglas: + +- **Denegación predeterminada**: Si ninguna política permite explícitamente la acción, esta se deniega. +- **La denegación prevalece sobre la autorización**: Si alguna política coincidente deniega la acción, esta se deniega, incluso si otra política la permite. + +Las políticas de ejecución no almacenan credenciales. Responden *dónde* pueden ejecutarse las acciones, *qué* se puede ejecutar y *quién* puede ejecutarlo. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/actions/connections/ +[2]: /es/actions/private_actions/enroll_runner/ +[3]: /es/account_management/rbac/ +[4]: https://app.datadoghq.com/actions/execution-policies +[5]: /es/actions/private_actions/reference/ \ No newline at end of file diff --git a/hugo/content/es/actions/workflows/build.md b/hugo/content/es/actions/workflows/build.md new file mode 100644 index 00000000000..5faaf7fa68a --- /dev/null +++ b/hugo/content/es/actions/workflows/build.md @@ -0,0 +1,216 @@ +--- +algolia: + tags: + - workflow + - workflows + - workflow automation +aliases: +- /es/workflows/build +- /es/service_management/workflows/build +description: Cree flujos de trabajo a partir de Blueprints o construya flujos de trabajo + personalizados mediante asistencia de IA, configuración manual y acciones de arrastrar + y soltar. +disable_toc: false +further_reading: +- link: /getting_started/workflow_automation/ + tag: Documentación + text: Introducción a Workflow Automation +- link: /actions/actions_catalog + tag: Documentación + text: Explore las acciones disponibles en el Action Catalog +- link: /security/cloud_security_management/workflows + tag: Documentación + text: Automatice Security Workflows con Workflow Automation +- link: /actions/workflows/variables + tag: Documentación + text: Variables y parámetros +title: Crear flujos de trabajo +--- +Puede crear flujos de trabajo o editar flujos de trabajo existentes desde la página [Workflow Automation][1]. La página enumera información sobre los flujos de trabajo existentes, como el propietario del flujo de trabajo, el tipo de activador, las fechas en las que cada flujo de trabajo se modificó y ejecutó por última vez, y si el flujo de trabajo está publicado o no. +- Pase el cursor sobre un flujo de trabajo para ver las opciones para eliminar, clonar o editar los permisos del flujo de trabajo. +- Active {{< ui >}}My workflows{{< /ui >}} si desea ver solo los flujos de trabajo que usted creó. + +## Cree un flujo de trabajo a partir de un Blueprint {#build-a-workflow-from-a-blueprint} + +1. Haga clic en la pestaña [**Blueprints**][5]. +1. Si lo desea, utilice la barra de búsqueda para limitar la lista de Blueprints por nombre, categoría o integración. +1. Busque el Blueprint que desea utilizar y haga clic en él. Aparece el lienzo del flujo de trabajo. +1. Haga clic en {{< ui >}}Create From Blueprint{{< /ui >}}. El lienzo del flujo de trabajo se actualiza para mostrar el flujo de trabajo recién creado. +1. Ingrese un nombre y una descripción nuevos para el flujo de trabajo. +1. Opcionalmente, seleccione o ingrese las etiquetas que desea aplicar al flujo de trabajo. Para obtener más información sobre las etiquetas de Datadog, consulte [Getting Started with Tags][7]. +1. Opcionalmente, seleccione los [servicios][8] relacionados que desea aplicar al flujo de trabajo. +1. Opcionalmente, seleccione los [equipos][9] que desea asociar con el flujo de trabajo. Si un equipo no existe, puede ingresar un nombre para crearlo. +1. Haga clic en {{< ui >}}Save{{< /ui >}} para aplicar sus cambios. +1. Los pasos del flujo de trabajo que requieren actualizaciones están marcados con signos de exclamación. Haga clic en cada paso del flujo de trabajo que desee modificar y complete los campos vacíos en la pestaña {{< ui >}}Configure{{< /ui >}}. +1. Cuando termine de modificar el flujo de trabajo, haga clic en {{< ui >}}Run{{< /ui >}} para probarlo. +1. Cuando esté listo para publicar su flujo de trabajo, haga clic en {{< ui >}}Publish{{< /ui >}}. Los flujos de trabajo publicados generan costos basados en las ejecuciones del flujo de trabajo. Para obtener más información, consulte la [página de precios de Datadog][4]. + +## Cree o edite un flujo de trabajo con IA {#create-a-workflow-with-ai} + +Si no está seguro de por dónde empezar, puede generar automáticamente un flujo de trabajo o iterar sobre uno existente con IA. + +Para generar un flujo de trabajo: +1. Desde la página [Workflow Automation][1], haga clic en {{< ui >}}New Workflow{{< /ui >}}. +1. Haga clic en {{< ui >}}Create a workflow with AI{{< /ui >}}. +1. Ingrese una instrucción detallada para su flujo de trabajo. Especifique las integraciones y acciones que desea utilizar. +1. Haga clic en la flecha hacia arriba ({{< ui >}}↑{{< /ui >}}) para crear su flujo de trabajo. + +Para iterar sobre un flujo de trabajo existente: +1. Desde un flujo de trabajo existente, haga clic en {{< ui >}}Edit with AI{{< /ui >}}. +1. Ingrese una instrucción detallada para el comportamiento que desea agregar a su flujo de trabajo. Incluya las integraciones y acciones que desea utilizar. +1. Haga clic en la flecha hacia arriba ({{< ui >}}↑{{< /ui >}}) para añadir la funcionalidad a su flujo de trabajo. + +
La IA de Workflow Automation no responde preguntas sobre el producto. Si tiene preguntas o comentarios, considere unirse al canal #workflows en el Slack de la comunidad de Datadog
+ +## Cree un flujo de trabajo personalizado {#create-a-custom-workflow} + +Para crear un flujo de trabajo, haga clic en {{< ui >}}New workflow{{< /ui >}} en la página [Workflow Automation][1]. + +Para configurar su flujo de trabajo: +1. En el panel de configuración del flujo de trabajo, ingrese un {{< ui >}}Name{{< /ui >}} para su flujo de trabajo. +1. Opcionalmente, seleccione o ingrese las etiquetas que desea aplicar al flujo de trabajo. Para obtener más información sobre las etiquetas de Datadog, consulte [Getting Started with Tags][7]. +1. Opcionalmente, seleccione los [servicios][8] relacionados que desea aplicar al flujo de trabajo. +1. Opcionalmente, seleccione los [equipos][9] que desea asociar con el flujo de trabajo. Si un equipo no existe, puede ingresar un nombre para crearlo. +1. Ingrese los parámetros de entrada o salida si su flujo de trabajo los utiliza. +1. Haga clic en {{< ui >}}Save{{< /ui >}} para aplicar sus cambios. + +Si no está seguro de la configuración de su flujo de trabajo, puede volver al panel más tarde haciendo clic en cualquier parte del lienzo del flujo de trabajo. + +### Cree un flujo de trabajo con el generador de flujos de trabajo {#build-a-workflow-with-the-workflow-builder} + +1. Si su flujo de trabajo requiere un activador, haga clic en {{< ui >}}Add Trigger{{< /ui >}}. Para obtener más información, consulte [Activar un flujo de trabajo][3]. +1. Haga clic en {{< ui >}}Add Step{{< /ui >}} para comenzar a añadir pasos a su flujo de trabajo. +1. Busque una acción utilizando la barra de búsqueda o explore las integraciones y sus acciones relacionadas para encontrar la acción que busca. Haga clic en una acción para añadirla como un paso en el lienzo de su flujo de trabajo. +1. Haga clic en el paso en el lienzo del flujo de trabajo para configurarlo o ver sus salidas o variables de contexto. Para obtener más información sobre las salidas y las variables de contexto, consulte [Variables de contexto][14]. +1. Después de configurar el paso, haga clic en el icono de IA o en el icono de más ({{< ui >}}\+{{< /ui >}}) para agregar otro paso, o guarde el flujo de trabajo si ha terminado. +1. Cuando esté listo para publicar su flujo de trabajo, haga clic en {{< ui >}}Publish{{< /ui >}}. Los flujos de trabajo publicados generan costos basados en las ejecuciones del flujo de trabajo. Para obtener más información, consulte la [página de precios de Datadog][4]. + +Puede editar un paso en el flujo de trabajo en cualquier momento haciendo clic en él. Haga clic y arrastre los pasos en su flujo de trabajo para reorganizarlos. + +#### Atajos y herramientas del lienzo {#shortcuts-and-canvas-tools} + +Para ver los atajos de teclado y mouse para el lienzo del generador de flujos de trabajo, escriba `?` (shift+`/`) o haga clic en el {{< ui >}}Keyboard{{< /ui >}} {{< img src="actions/workflows/build/keyboard-icon.png" inline="true" style="width:40px;">}} Botón. Aparece una lista de atajos. + +El {{< ui >}}Zoom out{{< /ui >}} {{< img src="actions/workflows/build/zoom-out-mag-icon.png" inline="true" style="width:30px;">}}, {{< ui >}}Zoom in{{< /ui >}} {{< img src="actions/workflows/build/zoom-in-mag-icon.png" inline="true" style="width:30px;">}}, y {{< ui >}}Reset viewport{{< /ui >}} {{< img src="actions/workflows/build/reset-viewport-icon.png" inline="true" style="width:34px;">}} Los botones controlan cómo se muestra el visor. + +El {{< ui >}}Auto layout{{< /ui >}} {{< img src="actions/workflows/build/auto-layout-icon.png" inline="true" style="width:80px;">}} botón alinea y distribuye los pasos de su flujo de trabajo. + +El {{< ui >}}Add annotation{{< /ui >}} {{< img src="actions/workflows/build/add-annotation-icon.png" inline="true" style="width:30px;">}} botón le permite agregar notas de anotación a su flujo de trabajo. Estas notas ofrecen una barra de formato para agregar varios formatos de texto, como negrita y cursiva, enlaces y listas. También puede ingresar sus anotaciones en Markdown. + +{{< img src="actions/workflows/build/workflow-annotation-with-bar.png" alt="Una anotación vacía, con la barra de formato mostrada encima" style="width:70%;" >}} + +## Probar un paso {#test-a-step} + +Consulte la página de prueba y depuración para obtener información sobre [cómo probar un paso][11]. + +## Publicar un flujo de trabajo {#publish-a-workflow} + +Los flujos de trabajo programados y activados no se activan automáticamente hasta que los haya publicado. Para publicar el flujo de trabajo, haga clic en {{< ui >}}Publish{{< /ui >}} desde la página del flujo de trabajo. + +Los flujos de trabajo publicados generan costos basados en las ejecuciones del flujo de trabajo. Para obtener más información, consulte la [página de precios de Datadog][4]. + +### Actualización de un flujo de trabajo publicado {#updating-a-published-workflow} + +Puede actualizar flujos de trabajo publicados sin afectar la versión activa hasta que esté listo. + +La edición de un flujo de trabajo publicado crea un borrador. Todos los cambios realizados en el borrador no alteran el flujo de trabajo publicado. Cada flujo de trabajo puede tener un borrador activo, que todos los editores pueden modificar. Cuando esté listo, haga clic en {{< ui >}}Publish Changes{{< /ui >}} para reemplazar la versión publicada. + +Los borradores ejecutan todos los pasos configurados como cualquier flujo de trabajo normal. Solo puede ejecutar borradores desde el editor de flujos de trabajo. + +Para descartar el borrador, haga clic en {{< ui >}}cog icon{{< /ui >}} en la esquina superior derecha del editor y seleccione {{< ui >}}Discard draft{{< /ui >}}. + +**Notas**: +- La ejecución de un borrador para flujos de trabajo publicados no genera costos. +- Cualquier actualización a las propiedades del flujo de trabajo (nombre, etiquetas o notificaciones) omite el flujo de trabajo de borrador y se aplica inmediatamente a la versión publicada. + +## Variables y parámetros {#variables-and-parameters} + +Para obtener información sobre el uso de variables y parámetros en sus flujos de trabajo, consulte [Variables and parameters][12]. + +## Notificaciones del flujo de trabajo {#workflow-notifications} + +Puede configurar su flujo de trabajo para que le envíe una notificación en caso de éxito o error. Se admiten las siguientes integraciones: +- Slack +- Microsoft Teams +- PagerDuty +- Correo electrónico + +Para agregar una notificación: +1. En el panel de configuración del flujo de trabajo, desplácese hacia abajo hasta la sección {{< ui >}}Notifications{{< /ui >}}. +1. Para agregar una notificación si el flujo de trabajo tiene éxito: + 1. Haga clic en el icono de más ({{< ui >}}\+{{< /ui >}}) junto a {{< ui >}}Notify on success{{< /ui >}}. + 1. Seleccione la integración que desea usar para las notificaciones. + 1. Complete los campos obligatorios para la integración especificada. + 1. Haga clic en {{< ui >}}Save{{< /ui >}} para guardar su flujo de trabajo. +1. Para agregar una notificación si el flujo de trabajo falla: + 1. Haga clic en el icono de más ({{< ui >}}\+{{< /ui >}}) junto a {{< ui >}}Notify on failure{{< /ui >}}. + 1. Seleccione la integración que desea usar para las notificaciones. + 1. Complete los campos obligatorios para la integración especificada. + 1. Haga clic en {{< ui >}}Save{{< /ui >}} para guardar su flujo de trabajo. + +## Manejo de errores {#error-handling} + +Puede especificar la cantidad de veces que desea que su flujo de trabajo reintente un paso fallido, y en qué intervalo, antes de pasar a una ruta de error opcional. Si no hay una ruta de error presente, el flujo de trabajo termina después de que se agoten todos los reintentos. + +### Reintentos {#retries} + +Para configurar los reintentos de un paso: +1. Haga clic en el paso en el lienzo del flujo de trabajo. +1. En la sección {{< ui >}}Retries{{< /ui >}}, ajuste los valores de {{< ui >}}Interval{{< /ui >}} y {{< ui >}}Max retries{{< /ui >}}. +1. Guarde su flujo de trabajo para aplicar los cambios. + +### Agregar una ruta de error {#add-an-error-path} + +Puede agregar una ruta de error para que el flujo de trabajo la siga si encuentra un error. + +Para agregar una ruta de error: +1. Pase el cursor sobre el paso donde desea agregar una ruta de error. +1. Haga clic y arrastre el icono {{< ui >}}Error path{{< /ui >}} {{< img src="actions/workflows/build/error-path-icon.png" inline="true" style="width:24px;">}} para colocar una nueva ruta de error en el lienzo. +1. Seleccione un paso del flujo de trabajo para agregarlo a la ruta de error. +1. Después de configurar su paso, puede agregar más pasos a una ruta de error e incluso combinar su ruta de error nuevamente con la ruta principal del flujo de trabajo. +1. Cuando termine de configurar los pasos de su ruta de error, haga clic en {{< ui >}}Save{{< /ui >}} para aplicar sus cambios. + +## Espere hasta la condición {#wait-until-condition} + +Algunas acciones le permiten agregar una condición que debe cumplirse antes de que un flujo de trabajo pueda marcar un paso como completado y continuar. + +Para agregar una condición: +1. Haga clic en el paso en el lienzo del flujo de trabajo. +1. En la sección {{< ui >}}Wait until condition{{< /ui >}}, use el menú desplegable para seleccionar una condición preconfigurada, o seleccione {{< ui >}}Configure custom wait condition{{< /ui >}} y cree su propia condición. + - La lista de condiciones preconfiguradas disponibles depende de la acción. + - Las variables de la declaración condicional pueden ser una cadena, un número, un booleano o una variable de salida de paso. + - Solo se pueden usar las variables de salida del paso actual en una declaración condicional personalizada. +1. Ingrese un tiempo de espera máximo para el flujo de trabajo. Si la condición no se cumple a tiempo, el paso falla. + +{{< img src="actions/workflows/build/wait-until-condition2.png" alt="Ejemplo de condición de espera" style="width:100%;" >}} + +## Edite un flujo de trabajo con JSON {#edit-a-workflow-with-json} + +Edite un flujo de trabajo en JSON haciendo clic en {{< ui >}}Edit JSON Spec{{< /ui >}} en su página de flujo de trabajo. El editor de JSON también le permite: +- {{< ui >}}Format JSON{{< /ui >}}: Embellezca su JSON. +- {{< ui >}}Export JSON{{< /ui >}}: Descargue el flujo de trabajo. + +## Interactúe con flujos de trabajo usando la API {#interact-with-workflows-using-the-api} + +Para realizar tareas usando la API, consulte la [documentación de la Workflow Automation API][13]. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +
¿Tiene preguntas o comentarios? Únase al canal **#workflows** en el [Datadog Community Slack][10]. + +[1]: https://app.datadoghq.com/workflow +[2]: https://handlebarsjs.com/guide/expressions.html#expressions +[3]: /es/actions/workflows/trigger +[4]: https://www.datadoghq.com/pricing/?product=workflow-automation#products +[5]: https://app.datadoghq.com/workflow/blueprints +[6]: /es/actions/workflows/actions/#testing-expressions-and-functions +[7]: /es/getting_started/tagging/ +[8]: /es/glossary/#service +[9]: /es/account_management/teams/ +[10]: https://chat.datadoghq.com/ +[11]: /es/actions/workflows/test_and_debug/#test-a-step +[12]: /es/actions/workflows/variables/ +[13]: /es/api/latest/workflow-automation/ +[14]: /es/actions/workflows/variables/#context-variables \ No newline at end of file diff --git a/hugo/content/es/actions/workflows/variables.md b/hugo/content/es/actions/workflows/variables.md index 2537fdf29bf..7394c7c3dde 100644 --- a/hugo/content/es/actions/workflows/variables.md +++ b/hugo/content/es/actions/workflows/variables.md @@ -1,153 +1,155 @@ --- algolia: tags: - - variables de flujo de trabajo + - workflow variables - variables - mutable aliases: - /es/service_management/workflows/actions/set_variables/ - /es/service_management/workflows/variables +description: Utilice variables de contexto, parámetros de entrada, parámetros de salida + y variables personalizadas para pasar datos entre los pasos del flujo de trabajo. disable_toc: false further_reading: -- link: /service_management/workflows/actions/flow_control#for-loop +- link: /actions/workflows/actions/flow_control#for-loop tag: Documentación - text: Utilizar un bucle for para realizar una acción de forma iterativa + text: Utilice un bucle for para realizar una acción de forma iterativa title: Variables y parámetros --- - Las siguientes variables y parámetros están disponibles en los flujos de trabajo: -- [Variables de contexto](#context-variables): las variables de contexto son una amplia categoría de variables inmutables que almacenan información contextual sobre un flujo de trabajo, o contienen datos que se pasan al flujo de trabajo por un evento desencadenante o por un paso en el flujo de trabajo. -- [Parámetros de entrada](#input-parameters): los parámetros de entrada son pares clave-valor inmutables que puedes utilizar para pasar datos a un flujo de trabajo en tiempo de ejecución. -- [Parámetros de salida](#output-parameters): los parámetros de salida permiten pasar el resultado de un flujo de trabajo a otro flujo de trabajo. -- [Variables personalizadas](#custom-variables): las variables personalizadas son mutables. Te permiten declarar, actualizar y acceder a variables a lo largo de tu flujo de trabajo. +- [Variables de contexto](#context-variables): Las variables de contexto son una categoría amplia de variables inmutables que almacenan información contextual sobre un flujo de trabajo, o contienen datos que se pasan al flujo de trabajo mediante un evento de activación o mediante un paso en el flujo de trabajo. +- [Parámetros de entrada](#input-parameters): Los parámetros de entrada son pares clave-valor inmutables que puede utilizar para pasar datos a un flujo de trabajo en tiempo de ejecución. +- [Parámetros de salida](#output-parameters): Los parámetros de salida le permiten pasar el resultado de un flujo de trabajo a otro flujo de trabajo. +- [Variables personalizadas](#custom-variables): Las variables personalizadas son mutables. Le permiten declarar, actualizar y acceder a variables a lo largo de su flujo de trabajo. -## Variables de contexto +## Variables de contexto {#context-variables} -La creación de flujos de trabajo útiles a veces requiere pasar datos de un paso a otro, o configurar pasos que actúen sobre datos de la fuente desencadenante del flujo de trabajo. Puede realizar este tipo de interpolación de datos con variables de contexto. +La creación de flujos de trabajo útiles a veces requiere pasar datos de un paso a otro, o configurar pasos que actúen sobre los datos de la fuente de activación del flujo de trabajo. Puede realizar este tipo de interpolación de datos con variables de contexto. -- **Workflow variables** (las variables de flujo de trabajo) te proporcionan información sobre el flujo de trabajo actual: - - `WorkflowName`: el nombre del flujo de trabajo. - - `WorkflowId`: el ID del flujo de trabajo. - - `InstanceId`: el ID de la instancia de ejecución del flujo de trabajo. -- Algunos pasos vienen con **step output variables** (variables de salida de paso) incorporadas que te permiten pasar datos de ese paso a un paso posterior en tu flujo de trabajo. -- **Trigger variables** (Las variables de activación) se introducen en el flujo de trabajo a través del evento desencadenante. -- **Source object variables** (Las variables de objeto fuente) son introducidas en el flujo de trabajo por el evento desencadenante. +- **Las variables de flujo de trabajo** le brindan información sobre el flujo de trabajo actual: + - `WorkflowName`: El nombre del flujo de trabajo. + - `WorkflowId`: El ID del flujo de trabajo. + - `InstanceId`: El ID de la instancia de ejecución del flujo de trabajo. +- Algunos pasos vienen con **variables de salida de paso** integradas que le permiten pasar datos de ese paso a un paso posterior en su flujo de trabajo. +- **Las variables de activación** son pasadas al flujo de trabajo por el evento de activación. +- **Las variables de objeto de fuente** son pasadas al flujo de trabajo por el evento de activación. -La pestaña de **Context Variables** (variables de contexto) para cada paso proporciona un mapa de todas las variables de contexto disponibles para ese paso. +La pestaña {{< ui >}}Context Variables{{< /ui >}} para cada paso proporciona un mapa de todas las variables de contexto disponibles para ese paso. {{< img src="actions/workflows/variables/context-variables5.png" alt="La pestaña Variables de contexto" >}} -Accede a una variable de contexto en un paso encerrándola entre llaves dobles (`{{`). Para acceder a campos dentro de variables de contexto, utiliza la [Sintaxis de expresión Handlebars][4]. +Acceda a una variable de contexto en un paso encerrándola entre llaves dobles (`{{`). Para acceder a campos dentro de variables de contexto, utilice la [sintaxis de expresión Handlebars][4]. -### Variables de salida por pasos +### Variables de salida de paso {#step-output-variables} -Algunos pasos crean salidas que están disponibles para pasos posteriores en un flujo de trabajo. Accede a una variable de paso con la sintaxis `Steps..`. Por ejemplo, para recuperar la variable de estado de la solicitud de extracción (`state`) del paso de estado de la solicitud de extracción de GitHub (`Get_pull_request_status`), utilizarías la siguiente variable de contexto: +Algunos pasos crean salidas que están disponibles para los pasos posteriores en un flujo de trabajo. Acceda a una variable de paso con la sintaxis: `Steps..`. Por ejemplo, para recuperar la variable de estado de solicitud de extracción (`state`) del paso de estado de solicitud de extracción de GitHub (`Get_pull_request_status`), usaría la siguiente variable de contexto: ``` {{ Steps.Get_pull_request_status.state }} ``` -Si no estás seguro de qué variable buscas, Datadog te sugiere salidas de pasos existentes a medida que escribes. También puedes consultar la pestaña [Context Variables (variables de contexto)](#context-variables) para consultar lista de las variables disponibles. +Si no está seguro de qué variable está buscando, Datadog sugiere salidas de paso existentes a medida que escribe. Alternativamente, puede consultar la pestaña {{< ui >}}Context Variables{{< /ui >}} para obtener una lista de las variables disponibles. -{{< img src="actions/workflows/variables/step-outputs2.png" alt="Datadog sugiere las salidas del paso existente mientras escribes." style="width:100%;" >}} +{{< img src="actions/workflows/variables/step-outputs2.png" alt="Datadog sugiere salidas de paso existentes a medida que escribe." style="width:100%;" >}} -### Variables del objeto fuente +### Variables de objeto de fuente {#source-object-variables} -Las variables del objeto fuente son propiedades del evento desencadenante que se resuelven en la ejecución. Las variables disponibles en el flujo de trabajo dependen del tipo de disparador que inició la instancia del flujo de trabajo. Por ejemplo, si la instancia de flujo de trabajo es desencadenada por un monitor, la variable ID del monitor está disponible utilizando `{{Source.monitor.id}}`. Si el flujo de trabajo se desencadena por una detección de señal de seguridad o una regla de notificación, el ID de la señal está disponible utilizando `{{Source.securitySignal.id}}`. +Las variables de objeto de fuente son propiedades del evento desencadenante que se resuelven en la ejecución. Las variables disponibles en el flujo de trabajo dependen del tipo de activador que inició la instancia del flujo de trabajo. Por ejemplo, si la instancia del flujo de trabajo es activada por un monitor, la variable de ID del monitor está disponible usando `{{Source.monitor.id}}`. If the workflow is triggered by a security signal detection or notification rule, the signal ID is available using `{{Source.securitySignal.id}}`. -Todas las variables del objeto fuente son visibles en la pestaña de Variables de contexto. +Todas las variables del objeto fuente son visibles en la pestaña {{< ui >}}Context Variables{{< /ui >}}. -{{< img src="actions/workflows/variables/context-variables-tab-source-object-variables2.png" alt="Las variables objeto de origen en la pestaña de Variables de contexto" style="width:60%;">}} +{{< img src="actions/workflows/variables/context-variables-tab-source-object-variables2.png" alt="Las variables de objeto de origen en la pestaña Variables de contexto" style="width:60%;">}} -## Parámetros de entrada +## Parámetros de entrada {#input-parameters} -Los parámetros de entrada son pares clave-valor inmutables que puedes utilizar para pasar datos a un flujo de trabajo. Puedes utilizar parámetros de entrada en flujos de trabajo que: -- Se activan manualmente, por ejemplo, desde dashboard. -- Utilizar disparadores de mención, como monitores y Reglas de notificaciones de señal de seguridad. +Los parámetros de entrada son pares clave-valor inmutables que puede usar para pasar datos a un flujo de trabajo. Puede usar parámetros de entrada en flujos de trabajo que: +- se activan manualmente, como desde un Dashboard. +- usan activadores de mención, como Monitors y Security Signal Notification Rules. -Para añadir un parámetro de entrada: -1. Haz clic en el lienzo del flujo de trabajo. -1. Haz clic en el icono **+** situado junto a **Input Parameters** (Parámetros de entrada). -1. Añade un nombre de parámetro, un tipo de datos y una descripción para el parámetro. El nombre para mostrar se genera automáticamente a partir del nombre del parámetro. Verifica la casilla **Use custom display name** (Usar nombre para mostrar personalizado) para personalizarlo. El nombre para mostrar es un nombre legible para el parámetro, mientras que el nombre del parámetro se utiliza para hacer referencia al parámetro en tus pasos del flujo de trabajo. -1. Opcionalmente, añade un valor por defecto para el parámetro. Si añades un valor por defecto, el parámetro es opcional en tiempo de ejecución. +Para agregar un parámetro de entrada: +1. Haga clic en el lienzo del flujo de trabajo. +1. Haga clic en el icono {{< ui >}}\+{{< /ui >}} junto a {{< ui >}}Input Parameters{{< /ui >}}. +1. Agregue un nombre de parámetro, tipo de datos y descripción para el parámetro. El nombre para mostrar se genera automáticamente a partir del nombre del parámetro. Marque la casilla {{< ui >}}Use custom display name{{< /ui >}} para personalizarlo. El nombre para mostrar es un nombre legible por humanos para el parámetro, mientras que el nombre del parámetro se utiliza para hacer referencia al parámetro en los pasos de su flujo de trabajo. +1. Opcionalmente, agregue un valor predeterminado para el parámetro. Si agrega un valor predeterminado, el parámetro es opcional en tiempo de ejecución. -Para hacer referencia al parámetro de entrada en un paso, utiliza la sintaxis `{{ Trigger.}}`. Por ejemplo, para hacer referencia a un parámetro de entrada denominado `user`, utiliza `{{Trigger.user}}`. +Para hacer referencia al parámetro de entrada en un paso, utilice la sintaxis `{{ Trigger.}}`. For example, to reference an input parameter named `usuario`, use `{{Trigger.user}}` . -La sección **Input Parameters** (Parámetros de entrada) muestra los nombres de todos los parámetros de entrada existentes junto con un contador. Pasa el cursor por encima de un contador para ver qué pasos utilizan el parámetro. +La sección {{< ui >}}Input Parameters{{< /ui >}} muestra los nombres de todos los parámetros de entrada existentes junto con un contador. Pase el cursor sobre un contador para ver qué pasos están utilizando el parámetro. -{{< img src="actions/workflows/variables/input-parameter3.png" alt="Pasa sobre un contador para ver qué pasos están usando el parámetro." style="width:60%;">}} +{{< img src="actions/workflows/variables/input-parameter3.png" alt="Pase el cursor sobre un contador para ver qué pasos están utilizando el parámetro." style="width:60%;">}} -Puedes añadir un parámetro de entrada implícito (un parámetro que aún no existe en el flujo de trabajo) escribiéndolo en un paso del flujo de trabajo utilizando la sintaxis `{{ Trigger. }}`. La próxima vez que guardes el flujo de trabajo, aparecerá un cuadro de diálogo que te permitirá convertir el parámetro en uno explícito. Para obtener más información sobre la activación de flujos de trabajo, consulta [Trigger a workflow (Activar un flujo de trabajo)][5]. +Puede agregar un parámetro de entrada implícito (un parámetro que aún no existe en el flujo de trabajo) escribiéndolo en un paso del flujo de trabajo usando la sintaxis `{{ Trigger. }}`. La próxima vez que guarde el flujo de trabajo, aparecerá un cuadro de diálogo que le permitirá convertir el parámetro en un parámetro explícito. Para obtener más información sobre cómo activar flujos de trabajo, consulte [Activar un flujo de trabajo][5]. -Si estás buscando un parámetro de entrada existente, empieza a escribir `{{ Trigger.` para ver si aparece como sugerencia. También puedes consultar la pestaña [Context Variables (variables de contexto)](#context-variables) para ver una lista de los parámetros disponibles. +Si está buscando un parámetro de entrada existente, comience a escribir `{{ Trigger.` para ver si aparece como sugerencia. Alternativamente, consulte la pestaña {{< ui >}}Context Variables{{< /ui >}} para obtener una lista de los parámetros disponibles. -## Parámetros de salida +## Parámetros de salida{#output-parameters} -Los parámetros de salida te permiten acceder al resultado de un flujo de trabajo. Esto es útil cuando deseas pasar el resultado de un flujo de trabajo a otro flujo de trabajo o a una aplicación de App Builder. +Los parámetros de salida le permiten acceder al resultado de un flujo de trabajo. Esto es útil cuando desea pasar el resultado de un flujo de trabajo a otro flujo de trabajo o a una aplicación de App Builder. -Para añadir un parámetro de salida: -1. Haz clic en el lienzo del flujo de trabajo. -1. Haz clic en el icono **+** situado junto a **Output Parameters** (Parámetros de salida). -1. Añade un nombre de parámetro, un valor y un tipo de datos para el parámetro. -1. Opcionalmente, añade un valor por defecto para el parámetro. Si añades un valor por defecto, el parámetro es opcional en tiempo de ejecución. +Para agregar un parámetro de salida: +1. Haga clic en el lienzo del flujo de trabajo. +1. Haga clic en el icono {{< ui >}}\+{{< /ui >}} junto a {{< ui >}}Output Parameters{{< /ui >}}. +1. Agregue un nombre, valor y tipo de datos para el parámetro. +1. Opcionalmente, agregue un valor predeterminado para el parámetro. Si agrega un valor predeterminado, el parámetro es opcional en tiempo de ejecución. -La sección **Output Parameters** (Parámetros de salida) muestra los nombres de todos los parámetros de salida existentes junto con un contador. +La sección {{< ui >}}Output Parameters{{< /ui >}} muestra los nombres de todos los parámetros de salida existentes junto con un contador. -Para obtener información sobre el paso de datos entre flujos de trabajo, consulta [Acceder al resultado de un flujo de trabajo secundario][7]. +Para obtener información sobre cómo pasar datos entre flujos de trabajo, consulte [Acceder al resultado de un flujo de trabajo secundario][7]. -Para ver un ejemplo de cómo utilizar parámetros de salida para pasar información entre flujos de trabajo y App Builder, consulta [devolver resultados de flujo de trabajo a una aplicación][6]. +Para ver un ejemplo de cómo usar parámetros de salida para pasar información entre flujos de trabajo y App Builder, consulte [devolver resultados de flujo de trabajo a una aplicación][6]. -## Variables personalizadas +## Variables personalizadas{#custom-variables} -Para establecer una variable mutable de flujo de trabajo, utiliza la acción [Establecer variable][1]. Puedes utilizar esta acción para declarar, actualizar y acceder a variables personalizadas en todo el flujo de trabajo, lo que te permite realizar operaciones de flujo de trabajo más complejas. Por ejemplo: -- _Gestión de la paginación de la API_: las solicitudes de la API a veces requieren que hagas un seguimiento de un token o desplazamiento de página. -- _Gestión de listas_: puedes usar una variable para inicializar un array y realizar acciones como map (asignar) y reduce (reducir). -- _Iteración_: las variables te permiten manipular y almacenar datos dentro de un [bucle for][2]. A continuación, puedes utilizar esos datos en el resto del flujo de trabajo. +Para establecer una variable de flujo de trabajo mutable, utilice la acción [Establecer variable][1]. Puede utilizar esta acción para declarar, actualizar y acceder a variables personalizadas a lo largo de su flujo de trabajo, lo que le permite realizar operaciones de flujo de trabajo más complejas. Por ejemplo: +- _Manejo de la paginación de API_: las solicitudes de API a veces requieren que realice un seguimiento de un token de página o un desplazamiento. +- _Manejo de listas_: Puede usar una variable para inicializar una matriz y realizar acciones como map y reduce. +- _Iteración_: Las variables le permiten manipular y almacenar datos dentro de un [bucle for][2]. Luego puede usar esos datos en el resto del flujo de trabajo. -### Establecer una variable personalizada +### Establezca una variable personalizada {#set-a-custom-variable} Para establecer una variable personalizada: -1. Haz clic en el icono más (**+**) del lienzo del flujo de trabajo para abrir el catálogo de acciones. -1. Busca y selecciona el paso **Set variable** (Fijar variable). -1. Haz clic en el paso **Set variable** (Establecer variable) e ingresa un **Step name** (Nombre de paso). -1. Introduce un **variable name** (nombre de variable). Los nombres de las variables deben empezar por una letra y sólo pueden contener caracteres alfanuméricos y guiones bajos. -1. Introduce un valor para la variable. - - Escribe ``{{`` si deseas utilizar una variable contextual del flujo de trabajo. - - Para crear un objeto, haz clic en el botón **Create object** (Crear objeto). - - Para crear una matriz, haz clic en el botón **Create array** (Crear matriz) [ ]. +1. Haga clic en el icono de más ({{< ui >}}\+{{< /ui >}}) en el lienzo de su flujo de trabajo para abrir el catálogo de acciones. +1. Busque y seleccione el paso {{< ui >}}Set variable{{< /ui >}}. +1. Haga clic en el paso {{< ui >}}Set variable{{< /ui >}} e ingrese un {{< ui >}}Step name{{< /ui >}}. +1. Ingrese un {{< ui >}}variable name{{< /ui >}}. Los nombres de las variables deben comenzar con una letra y solo pueden contener caracteres alfanuméricos y guiones bajos. +1. Ingrese un valor para la variable. + - Escriba ``{{`` si desea usar una variable de contexto de flujo de trabajo. + - Para crear un objeto, haga clic en el botón {{< ui >}}Create object{{< /ui >}} . + - Para crear una matriz, haga clic en el botón {{< ui >}}Create array{{< /ui >}} [ ]. -Si necesitas cambiar el valor de una variable personalizada después de establecerla, debes añadir un paso adicional **Set variable** (Establecer variable) y reasignar la variable o crear una nueva variable. +Si necesita cambiar el valor de una variable personalizada después de establecerla, debe agregar un {{< ui >}}Set variable{{< /ui >}} paso adicional y volver a asignar la variable o crear una nueva variable. -Aquí hay un ejemplo de un flujo de trabajo que demuestra el paso **Set variable** (Establecer variable): +Aquí hay un ejemplo de un flujo de trabajo que demuestra el {{< ui >}}Set variable{{< /ui >}} paso: -1. En tu flujo de trabajo, comienza con un paso **Set variable** (Establecer variable) para declarar una variable llamada `intList` y darle el valor `[1,2,3,4]`. -1. Añade un segundo paso **Set variable** (Establecer variable) y declara una variable llamada `evenList` con el valor `${Variables.intList.filter(number => number % 2 === 0)}`. Esta es una [expresión en línea de JavaScript][8] que filtra los números impares. -1. Añade un paso **Echo** (Eco) para hacer eco del valor de `evenList` (`2,4`). +1. En su flujo de trabajo, comience con un {{< ui >}}Set variable{{< /ui >}} paso para declarar una variable llamada `intList` y asígnele el valor `[1,2,3,4]`. +1. Agregue un segundo paso {{< ui >}}Set variable{{< /ui >}} y declare una variable llamada `evenList` con el valor `${Variables.intList.filter(number => number % 2 === 0)}`. Esta es una [expresión de JavaScript en línea][8] que filtra los números impares. +1. Agregue un paso {{< ui >}}Echo{{< /ui >}} para mostrar el valor de `evenList` (`2,4`). -{{< img src="actions/workflows/variables/set-variable-updated.png" alt="Este flujo de trabajo establece una variable para tener una lista de números, declara una segunda variable que filtra los números impares en la lista usando una expresión en línea y hace eco del valor de la segunda variable." style="width:100%;" >}} +{{< img src="actions/workflows/variables/set-variable-updated.png" alt="Este flujo de trabajo establece una variable para contener una lista de números, declara una segunda variable que filtra los números impares de la lista mediante una expresión en línea y muestra el valor de la segunda variable." style="width:100%;" >}} -### Acceder a una variable personalizada +### Acceda a una variable personalizada {#access-a-custom-variable} -Puedes acceder a una variable personalizada en tu flujo de trabajo utilizando `{{ Variables.variableName }}`. Por ejemplo, para acceder a una variable personalizada denominada `DashboardList`, utiliza `{{ Variables.DashboardList }}`. +Puede acceder a una variable personalizada en su flujo de trabajo usando `{{ Variables.variableName }}`. For example, to access a custom variable named `DashboardList`, use `{{ Variables.DashboardList }}`. -### Iteración +### Iteración {#iteration} -Establecer una variable personalizada dentro de un bucle **For** te permite almacenar datos para su uso fuera del bucle. Por ejemplo, si estás haciendo múltiples solicitudes a la API dentro de un bucle **For**, puedes establecer una variable personalizada y añadirle los datos que necesites en cada iteración. Fuera del bucle, puedes acceder a la variable personalizada y manejar los datos recopilados. +Establecer una variable personalizada dentro de un {{< ui >}}For loop{{< /ui >}} o un {{< ui >}}While loop{{< /ui >}} le permite almacenar datos para su uso fuera del bucle. Por ejemplo, si está realizando múltiples solicitudes de API dentro de un {{< ui >}}For loop{{< /ui >}}, puede establecer una variable personalizada y agregar los datos que necesita en cada iteración. Fuera del bucle, puede acceder a la variable personalizada y manejar los datos que recopiló. -Para evitar un error de tipo resultante de una variable indefinida, asigna una variable personalizada antes de utilizarla en un bucle. En el ejemplo siguiente, la variable personalizada `evenList` se establece en una matriz vacía antes de utilizarla en el bucle. +Para evitar un error de tipo resultante de una variable no definida, asigne una variable personalizada antes de usarla en un bucle. En el ejemplo siguiente, la variable personalizada `evenList` se establece en un array vacío antes de usarse en el bucle. -{{< img src="actions/workflows/variables/loop.png" alt="Este flujo de trabajo establece una variable antes de que se utilice en un bucle." style="width:100%;" >}} +{{< img src="actions/workflows/variables/loop.png" alt="Este flujo de trabajo establece una variable antes de usarla en un bucle." style="width:100%;" >}} -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -
¿Tienes preguntas o comentarios? Únete al canal **#workflows** en [Datadog Community Slack][3]. +
¿Tiene preguntas o comentarios? Únase al canal **#workflows** en el [Datadog Community Slack][3]. [1]: https://app.datadoghq.com/workflow/action-catalog#/com.datadoghq.core/com.datadoghq.core.setVariable -[2]: /es/service_management/workflows/actions/flow_control#for-loop -[3]: https://datadoghq.slack.com/ +[2]: /es/actions/workflows/actions/flow_control#for-loop +[3]: https://chat.datadoghq.com/ [4]: https://handlebarsjs.com/guide/expressions.html#expressions -[5]: /es/service_management/workflows/trigger -[6]: /es/service_management/app_builder/queries/#return-workflow-results-to-an-app -[7]: /es/service_management/workflows/trigger/#access-the-result-of-a-child-workflow \ No newline at end of file +[5]: /es/actions/workflows/trigger +[6]: /es/actions/app_builder/queries/#return-workflow-results-to-an-app +[7]: /es/actions/workflows/trigger/#access-the-result-of-a-child-workflow +[8]: /es/actions/workflows/expressions/#inline-javascript-expressions \ No newline at end of file diff --git a/hugo/content/es/agent/fleet_automation/configure_agents.md b/hugo/content/es/agent/fleet_automation/configure_agents.md new file mode 100644 index 00000000000..5e55df3e621 --- /dev/null +++ b/hugo/content/es/agent/fleet_automation/configure_agents.md @@ -0,0 +1,104 @@ +--- +description: Implemente y gestione la configuración del Datadog Agent a escala con + Fleet Automation. +further_reading: +- link: /agent/fleet_automation/ + tag: Documentación + text: Fleet Automation +- link: /api/latest/fleet-automation/ + tag: Documentación + text: API de Fleet Automation +site_support_id: fleet-automation-standard-features +title: Configurar Agents +--- +Utilice [Fleet Automation][3] para implementar y gestionar la configuración del Datadog Agent a escala. Aplique cambios de configuración a través de flujos de trabajo guiados en la interfaz de usuario o con archivos YAML personalizados. + +## Requisitos previos {#prerequisites} + +- [Remote Configuration][9] habilitada para su organización +- Agent versión 7.73+ para la configuración de Agent y OTel Collector (versión 7.76+ para configurar integraciones y secretos). Para actualizar sus Agents, consulte [Upgrade Agents][10]. +- VMs de Linux instaladas con el script de instalación o el rol de Ansible de Datadog, o VMs de Windows + +{{< callout url="https://www.datadoghq.com/product-preview/configure-agent-kubernetes-operator/" header="¡Únase a la vista previa!" >}} +La configuración remota de Agents en cargas de trabajo en contenedores está en versión preliminar. Si le interesa esta función, complete el formulario para solicitar acceso. +{{< /callout >}} + +{{< callout url="https://www.datadoghq.com/product-preview/modify-tags-fleet-automation/" header="¡Únase a la vista previa!" >}} +La gestión de etiquetas del Datadog Agent con Fleet Automation está en versión preliminar. Si le interesa esta función, complete el formulario para solicitar acceso. +{{< /callout >}} + +## Configurar múltiples Agents {#configure-multiple-agents} + +1. En Fleet Automation, abra la pestaña [Configuration][1] y haga clic en {{< ui >}}Configure Agents{{< /ui >}}. +1. Defina el contexto de la configuración para los Agents de destino. Filtre por información de servidor o etiquetas para dirigirse a un grupo específico. + + {{< img src="/agent/fleet_automation/fa_scope_config.png" alt="El paso Contexto de esta configuración en el flujo de trabajo Configure Agents de Fleet Automation, que muestra filtros para el entorno, el sistema operativo y el nombre de servidor, una lista de 33 Agents incluidos en el contexto y un panel Configuration Summary a la derecha." style="width:100%;" >}} + +1. Seleccione los productos (por ejemplo, Logs, APM o NDM) que deben ejecutar los Agents de destino. + + {{< img src="/agent/fleet_automation/fa_create_agent_configuration3.png" alt="El paso Select products to configure en el flujo de trabajo Configure Agents de Fleet Automation, que muestra mosaicos de productos agrupados en Core Observability (Infrastructure Monitoring, Log Management, APM) y Additional Observability (Live Process Monitoring, Cloud Network Monitoring, Network Device Monitoring)." style="width:100%;" >}} + +1. Revise el plan de implementación para confirmar los Agents incluidos en el contexto y la configuración de la implementación, como la simultaneidad del despliegue. +1. Haga clic en {{< ui >}}Deploy Configuration{{< /ui >}} para iniciar la implementación y realizar un seguimiento de su progreso desde la [página Implementaciones][2]. + +## Edite la configuración de un solo Agent {#edit-the-configuration-of-a-single-agent} + +1. Navegue a [Fleet View][3]. + +1. (Opcional) Filtre por información de servidor o etiquetas para reducir la lista. + +1. Seleccione un servidor para abrir su panel lateral, luego haga clic en la pestaña {{< ui >}}Configuration{{< /ui >}}. + +1. Haga clic en {{< ui >}}Edit{{< /ui >}} para modificar la configuración. + +1. Haga clic en {{< ui >}}Deploy Changes{{< /ui >}} para aplicar sus actualizaciones. + +**Nota**: Algunos campos de configuración (por ejemplo, `api_key`, `site` y `notable_events`) no se pueden modificar. + +El ejemplo a continuación muestra el campo `logs_enabled` cambiado de `false` a `true`, lo que habilita la recopilación de registros en el Agent después de la implementación. + +{{< img src="/agent/fleet_automation/agent_remote_management_single_agent_config2.png" alt="Edite e implemente cambios en la configuración del Agent." style="width:90%;" >}} + +## Configure Agents con la API {#configure-agents-with-the-api} + +Fleet Automation proporciona una API para aplicar actualizaciones de configuración mediante programación. Implemente cambios en cualquier grupo de servidores con consultas de filtro, proporcionando archivos de configuración completos o parches específicos. Envíe la configuración bajo demanda o intégrela en sus flujos de trabajo de automatización existentes. Para obtener todos los detalles, consulte la [Fleet Automation API][4]. + +**Nota**: La API no admite todos los campos de configuración del Agent. La configuración relacionada con la conexión del Agent o los secretos (`site`, `api_key` y otros parámetros de autenticación) no se puede administrar a través de la API. + +## Precedencia de configuración {#configuration-precedence} + +Los cambios de configuración implementados a través de Fleet Automation siguen diferentes reglas según el destino: + +- **Configuración del Agent (`datadog.yaml`):** Fleet Automation aplica los cambios mediante un parche de fusión: solo se actualizan los campos especificados y los campos no mencionados permanecen sin cambios. Si ocurre un conflicto a nivel de campo, el valor de Fleet Automation tiene prioridad sobre cualquier valor local. +- **Configuraciones de integración y registros personalizados:** Fleet Automation admite dos modos: + - Implementar un nuevo archivo de configuración. + - Actualizar un archivo existente mediante un parche de fusión para modificar solo campos específicos. Si implementa un cambio dirigido a un nombre de archivo existente sin usar un parche de fusión, el archivo se sobrescribe por completo. + + En ambos casos, el cambio más reciente se convierte en la configuración activa del Agent, independientemente de la fuente (Fleet Automation, herramientas de gestión de configuración o ediciones directas en el servidor). + +Utilice [Fleet Automation Audit Trail][5] para realizar un seguimiento de los cambios de configuración recientes en sus Agents y configurar alertas sobre esos cambios. + +## Espejos y proxies {#mirrors-and-proxies} + +Puede utilizar la gestión remota del Agent junto con un proxy o repositorios reflejados. + +Para obtener instrucciones sobre cómo configurar su Agent para usar un proxy, consulte [Agent Proxy Configuration][6]. Después de configurar el proxy, reinicie el Agent para aplicar la configuración. + +Para obtener instrucciones sobre el uso de repositorios reflejados o aislados (air-gapped), consulte: +- [Sincronizar las imágenes de Datadog con un registro de contenedores privado][7] +- [Instalar Agent en un servidor con conectividad a internet limitada][8] + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/fleet/agent-management +[2]: https://app.datadoghq.com/fleet/deployments +[3]: https://app.datadoghq.com/fleet +[4]: /es/api/latest/fleet-automation/ +[5]: /es/agent/fleet_automation/fleet_view/#view-agent-audit-trail-events +[6]: /es/agent/configuration/proxy/ +[7]: /es/containers/guide/sync_container_images/ +[8]: /es/agent/guide/installing-the-agent-on-a-server-with-limited-internet-connectivity/ +[9]: /es/agent/guide/setup_remote_config +[10]: /es/agent/fleet_automation/upgrade_agents/ \ No newline at end of file diff --git a/hugo/content/es/api/latest/agent-observability/list-agent-observability-annotation-queues/index.md b/hugo/content/es/api/latest/agent-observability/list-agent-observability-annotation-queues/index.md new file mode 100644 index 00000000000..98b6c3669d4 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-agent-observability-annotation-queues/index.md @@ -0,0 +1,3 @@ +--- +title: Liste las colas de anotación de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/list-agent-observability-datasets/index.md b/hugo/content/es/api/latest/agent-observability/list-agent-observability-datasets/index.md new file mode 100644 index 00000000000..6fde0c0c5da --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-agent-observability-datasets/index.md @@ -0,0 +1,3 @@ +--- +title: Liste los datasets de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/list-events-for-an-agent-observability-experiment/index.md b/hugo/content/es/api/latest/agent-observability/list-events-for-an-agent-observability-experiment/index.md new file mode 100644 index 00000000000..d1509cf38f4 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-events-for-an-agent-observability-experiment/index.md @@ -0,0 +1,3 @@ +--- +title: Liste eventos para un experimento de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/list-patterns-clustered-points/index.md b/hugo/content/es/api/latest/agent-observability/list-patterns-clustered-points/index.md new file mode 100644 index 00000000000..4dfaf9807b0 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-patterns-clustered-points/index.md @@ -0,0 +1,3 @@ +--- +title: Liste patrones de puntos agrupados +--- diff --git a/hugo/content/es/api/latest/cloud-cost-management/update-a-unit-cost/index.md b/hugo/content/es/api/latest/cloud-cost-management/update-a-unit-cost/index.md new file mode 100644 index 00000000000..1dc7f175d64 --- /dev/null +++ b/hugo/content/es/api/latest/cloud-cost-management/update-a-unit-cost/index.md @@ -0,0 +1,3 @@ +--- +title: Actualice el costo unitario +--- diff --git a/hugo/content/es/api/latest/product-catalog/list-skus/index.md b/hugo/content/es/api/latest/product-catalog/list-skus/index.md new file mode 100644 index 00000000000..e72bb6882e6 --- /dev/null +++ b/hugo/content/es/api/latest/product-catalog/list-skus/index.md @@ -0,0 +1,3 @@ +--- +title: Liste SKUs +--- diff --git a/hugo/content/es/bits_ai/bits_detection.md b/hugo/content/es/bits_ai/bits_detection.md new file mode 100644 index 00000000000..b500ea2e4b6 --- /dev/null +++ b/hugo/content/es/bits_ai/bits_detection.md @@ -0,0 +1,132 @@ +--- +description: Aprenda cómo Bits Detection identifica de forma autónoma los servicios + críticos y gestiona la cobertura de seguimiento a medida que su sistema evoluciona. +further_reading: +- link: https://www.datadoghq.com/blog/bits-detection/ + tag: Blog + text: Haga un seguimiento de forma autónoma de las degradaciones impactantes con + Bits Detection +title: Bits Detection +--- +{{< callout url="#" btn_hidden="true" header="false">}} + Bits Detection está en versión preliminar. Comuníquese con su representante de Datadog para solicitar acceso. +{{< /callout >}} + +## Descripción general {#overview} + +La cobertura de seguimiento se desvía con el tiempo. A medida que los ingenieros agregan puntos de conexión, mueven dependencias y cambian los flujos de usuario, los seguimientos siguen reflejando el sistema tal como era. Un servicio puede parecer saludable en el nivel superior mientras una ruta crítica está fallando. Bits Detection identifica qué puntos de conexión necesitan cobertura, establece la lógica de detección a partir del comportamiento observado en producción y mantiene la cobertura actualizada sin que su equipo tenga que crear, ajustar y mantener manualmente cada seguimiento. + +Cuando Bits Detection marca un problema, señala el punto de conexión afectado y la telemetría relacionada como punto de partida para la clasificación. Es el paso inicial en el flujo de trabajo de Bits AI, que continúa a través de la investigación con [Bits Investigation][4] hasta el análisis de la causa raíz y la remediación. + +## Habilitar Bits Detection {#enable-bits-detection} + +
Bits Detection está en versión preliminar. Comuníquese con su representante de Datadog para solicitar acceso.
+ +Después de habilitar Bits Detection, este inicializa el seguimiento para los 100 servicios más críticos en su entorno, basándose en la telemetría del servicio, las dependencias, los metadatos de propiedad, los cambios recientes y las señales de impacto en el usuario. La cobertura es compatible con servicios HTTP y gRPC instrumentados con APM, priorizando el seguimiento en el borde de su aplicación. Para solicitar cobertura para tipos de recursos adicionales, comuníquese con [Datadog Support][1]. + +Los seguimientos existentes de su equipo permanecen en su lugar. Bits Detection trabaja junto a ellos, añadiendo cobertura adaptativa para las partes de su sistema que cambian demasiado rápido para modelarlas manualmente. + +Puede habilitar Bits Detection para servicios adicionales desde varios puntos de entrada: + +### Opción 1: Bits Detection Coverage Page {#enable-from-bits-ai} +1. En Datadog, vaya a [{{< ui >}}Bits AI{{< /ui >}} > {{< ui >}}Bits Detection{{< /ui >}}][5] y haga clic en {{< ui >}}Enable New Detection Coverage{{< /ui >}}. +1. Filtre la lista de servicios para encontrar los servicios que desea habilitar y seleccione uno o más servicios de la lista. +1. Configure un destino de notificación para que el equipo sepa cuándo Bits Detection encuentra una degradación crítica. +1. Revise la cobertura administrada una vez que se complete la inicialización. Recibirá un correo electrónico cuando su nueva postura de salud esté lista. + +### Opción 2: Página de servicio {#enable-from-service-page} + +1. En Datadog, vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Services{{< /ui >}}][2] y seleccione un servicio. +1. Abra la descripción general del seguimiento del servicio desde la barra de estado del monitor o la tarjeta de Bits Detection. +1. Siga las instrucciones para habilitar el seguimiento de Bits Detection para el servicio. +1. Revise la cobertura administrada una vez que se complete la inicialización. Recibirá un correo electrónico cuando su nueva postura de salud esté lista. + +## Use Bits Detection {#use-bits-detection} + +Bits Detection administra el seguimiento en tres etapas: + +- **Identificar recursos críticos**: Bits Detection evalúa los servicios y recursos compatibles para determinar qué puntos de conexión, dependencias o flujos son probablemente importantes para sus usuarios y su negocio. +- **Detectar degradaciones significativas**: Bits Detection crea y ajusta seguimientos administrados para recursos críticos. +- **Adaptarse a medida que los servicios cambian**: Bits Detection mantiene el seguimiento alineado con la producción al reevaluar la criticidad de los recursos, la cobertura de seguimiento y el comportamiento de las alertas a medida que sus servicios evolucionan. + +Use las secciones a continuación para revisar la cobertura, configurar el enrutamiento de alertas y proporcionar comentarios para ayudar a Bits a adaptarse con el tiempo. + +### Revisar el monitoreo de Bits Detection {#review-bits-detection-monitoring} + +Use la Página de cobertura de Bits Detection, la Página de servicio o la Lista de seguimientos para revisar cómo Bits Detection está haciendo un seguimiento de su sistema. + +**Página de cobertura de Bits Detection** + +Para revisar todos los contextos donde Bits Detection está activo, vaya a [{{< ui >}}Bits AI{{< /ui >}} > {{< ui >}}Bits Detection{{< /ui >}}][5]. Cada fila es un contexto de detección que muestra la cantidad de puntos de conexión críticos y seguimientos administrados que Bits mantiene, cuándo alertó el contexto por última vez, si las notificaciones de alerta están configuradas y si la investigación automática está habilitada. Seleccione un contexto para abrir sus Bits Detection Details, donde puede revisar el estado de salud durante un período de tiempo elegido, los puntos de conexión que Bits Detection considera críticos (cada uno con una justificación que explica por qué fue seleccionado), los seguimientos que Bits Detection administra y el historial de alertas del contexto. + +Desde la página de Cobertura, usted puede: + +- Revisar el estado de salud de Bits Detection para todos los servicios cubiertos. +- Habilitar una nueva cobertura de detección seleccionando los servicios que desea que Bits haga un seguimiento. +- Visualizar detalles para un contexto administrado. +- Revisar los puntos de conexión críticos cubiertos por Bits Detection. +- Marcar un punto de conexión como no crítico. +- Administrar reglas de notificación de alerta. + +**Página de servicio** + +Para abrir la vista de Bits Detection para un servicio, vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Services{{< /ui >}}][2], seleccione un servicio y abra la descripción general de seguimiento desde la barra de estado del monitor o la tarjeta de Bits Detection. + +{{< img src="bits_ai/bits_detection/service_page_bits_detection_card.png" alt="La tarjeta de Bits Detection en la página de APM Services que muestra el estado de monitoreo y los puntos de conexión críticos para un servicio." style="width:90%;" >}} + +La Página de servicio muestra los seguimientos de Bits Detection para el servicio, incluyendo su estado actual y el historial de alerta, junto con los puntos de conexión que Bits Detection considera críticos. Bits prioriza los puntos de conexión con mayor probabilidad de afectar directamente a los clientes (como las rutas de pago, registro o autenticación) y cada punto de conexión incluye una justificación de criticidad que explica por qué fue seleccionado. + +Desde la Página de servicio, usted puede: + +- Revisar el estado de salud de Bits Detection para el servicio. +- Abrir una alerta activa. +- Visualizar detalles para un tipo de detección administrado. +- Revisar los puntos de conexión críticos cubiertos por Bits Detection. +- Marcar un punto de conexión como no crítico. +- Administrar reglas de notificación de alerta. + +**Lista de seguimientos** + +Para visualizar los seguimientos de Bits Detection, vaya a [{{< ui >}}Monitors{{< /ui >}} > {{< ui >}}List{{< /ui >}}][3] y seleccione el filtro {{< ui >}}Bits Managed{{< /ui >}}. El banner de resumen muestra la cantidad de seguimientos administrados en cada estado. Expanda una fila de servicio para visualizar sus seguimientos administrados. + +{{< img src="bits_ai/bits_detection/monitor_list_bits_managed.png" alt="La Lista de seguimientos filtrada por seguimientos administrados por Bits, que muestra los servicios agrupados por estado de seguimiento administrado." style="width:90%;" >}} + +La Lista de seguimientos agrupa los seguimientos de Bits Detection por servicio. Para cada servicio, puede revisar el estado, la prioridad, el nombre del seguimiento y las etiquetas de cada seguimiento administrado. Los seguimientos de Bits Detection están etiquetados con un icono de destello para que pueda distinguirlos de los seguimientos que sus equipos crean y mantienen. + +### Administre las notificaciones de Bits Detection {#manage-bits-detection-notifications} + +Los seguimientos de Bits Detection están ajustados al comportamiento de producción, no a umbrales estáticos. Utilice reglas de notificación de alertas para dirigir las alertas a los equipos correctos. Para configurar una regla, vaya a la [descripción general de monitoreo de servicios][2] y haga clic en {{< ui >}}Set Up Alert Notification Rules{{< /ui >}}. + +1. En {{< ui >}}Match notifications with specific tags{{< /ui >}}, revise la consulta. Datadog completa previamente la regla con etiquetas para el servicio seleccionado y los seguimientos administrados por Bits Detection. Puede filtrar aún más. +1. En {{< ui >}}Choose routing conditions and recipients{{< /ui >}}, seleccione {{< ui >}}Manual Routing{{< /ui >}} o {{< ui >}}Dynamic Routing{{< /ui >}}. +1. Agregue los destinatarios que deben recibir las notificaciones de seguimientos coincidentes. +1. Asigne un nombre a la regla. +1. Defina los permisos para la regla. +1. Haga clic en {{< ui >}}Create Rule{{< /ui >}}. + +La regla de notificación se aplica a los seguimientos que coinciden con la consulta de etiquetas. El panel lateral muestra cuántos seguimientos coinciden con la regla y enumera ejemplos de seguimientos coincidentes. + +### Ayude a Bits a aprender {#help-bits-learn} + +Utilice los comentarios para ajustar Bits Detection para su entorno. Puede marcar las alertas como útiles o ruidosas, y actualizar qué puntos de conexión se consideran críticos desde la página de servicio. + +**Proporcione comentarios sobre una alerta** + +1. Abra la alerta de Bits Detection. +1. En el aviso de comentarios, haga clic en {{< ui >}}Yes{{< /ui >}} si Bits debería haberle alertado, o haga clic en {{< ui >}}No, Because…{{< /ui >}} si no debería haberlo hecho. +1. Si hizo clic en {{< ui >}}No, Because…{{< /ui >}}, seleccione un motivo. +1. Haga clic en {{< ui >}}Send Feedback{{< /ui >}}. + +**Proporcione comentarios sobre la criticidad del recurso** + +Bits Detection utiliza la criticidad para determinar qué recursos deben tener cobertura de seguimiento administrado. Desde la [descripción general del servicio monitoring][2], haga clic en {{< ui >}}Mark as Not Critical{{< /ui >}} junto a un punto de conexión que no debería tener cobertura crítica, o en {{< ui >}}Add a New Endpoint{{< /ui >}} para marcar uno como crítico. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/help +[2]: https://app.datadoghq.com/apm/services +[3]: https://app.datadoghq.com/monitors/manage?bits_monitors=true +[4]: /es/bits_ai/bits_investigation/ +[5]: https://app.datadoghq.com/bits-ai/detection/scopes \ No newline at end of file diff --git a/hugo/content/es/bits_ai/bits_security_analyst.md b/hugo/content/es/bits_ai/bits_security_analyst.md index cd4bcf20182..01e33ba3c25 100644 --- a/hugo/content/es/bits_ai/bits_security_analyst.md +++ b/hugo/content/es/bits_ai/bits_security_analyst.md @@ -4,63 +4,84 @@ aliases: further_reading: - link: https://www.datadoghq.com/blog/bits-ai-security-analyst/ tag: Blog - text: Automatiza investigaciones de Cloud SIEM con el Analista de Seguridad de Bits - AI + text: Automatice las investigaciones de Cloud SIEM con Bits AI Security Analyst - link: https://www.datadoghq.com/blog/cloud-siem-whats-new-rsa-2026 tag: Blog text: 'Novedades en Cloud SIEM: investigaciones impulsadas por IA, inteligencia de amenazas mejorada y operaciones de seguridad escalables' -title: Analista de Seguridad de Bits +- link: https://www.datadoghq.com/blog/cloud-security-investigation-ai/ + tag: Blog + text: Cómo investigar el compromiso de credenciales en la nube con Bits Security + Analyst +- link: https://www.datadoghq.com/blog/datadog-google-cloud-ai-stack/ + tag: Blog + text: Evalúe, optimice y asegure su pila de IA de Google Cloud con Datadog +title: Bits Security Analyst --- ## Descripción general {#overview} -El Analista de Seguridad de Bits es un agente autónomo de IA que investiga señales de Cloud SIEM de principio a fin. Consulta señales de seguridad y registros, y utiliza razonamiento basado en datos para ayudar a los ingenieros de seguridad a investigar alertas de amenazas y hacer una recomendación sobre el veredicto de cada señal de alerta. Al reducir el esfuerzo manual y la fatiga del analista, el Analista de Seguridad de Bits hace que las operaciones de seguridad sean más fluidas y eficientes. +Bits Security Analyst es un agente de IA autónomo que investiga señales de Cloud SIEM de principio a fin. Consulta señales y registros de seguridad, y utiliza razonamiento basado en datos para ayudar a los ingenieros de seguridad a investigar alertas de amenazas y hacer una recomendación sobre el veredicto de cada señal de alerta. Al reducir el esfuerzo manual y la fatiga del analista, Bits Security Analyst hace que las operaciones de seguridad sean más fluidas y eficientes. ### Capacidades clave {#key-capabilities} -Las investigaciones del Analista de Seguridad de Bits son autónomas. Si se habilita una regla de detección, Bits AI investiga de manera autónoma las señales asociadas con ella. +Las investigaciones de Bits Security Analyst son autónomas. Si una regla de detección está habilitada, Bits AI investiga de forma autónoma las señales asociadas a ella. -En el [Explorador de Señales de Cloud SIEM][5], puede hacer clic en la pestaña {{< ui >}}Bits Security Analyst{{< /ui >}} para mostrar solo las señales que investigó Bits AI. En la columna de Severidad, un estado de Bits AI se muestra como Investigando, hasta marcar la señal como Benigna o Sospechosa. +En el [Cloud SIEM Signals Explorer][5], puede hacer clic en la pestaña {{< ui >}}Bits Security Analyst{{< /ui >}} para mostrar solo las señales que Bits AI investigó. En la columna Severity, un estado de Bits AI aparece como Investigating, hasta que marca la señal como Benign o Suspicious. -{{< img src="bits_ai/bits_security_analyst_signals_explorer.png" alt="El explorador de señales de Cloud SIEM, en la pestaña del Analista de Seguridad de Bits" style="width:100%;" >}} +{{< img src="bits_ai/bits_security_analyst_signals_explorer.png" alt="El explorador de señales de Cloud SIEM, en la pestaña Bits Security Analyst" style="width:100%;" >}} -Cuando hace clic en una fila con una investigación de Bits AI, se abre el panel lateral de Investigación de Bits AI: +Cuando hace clic en una fila con una investigación de Bits AI, se abre el panel lateral Bits AI Investigation: -{{< img src="bits_ai/bits_security_analyst_example.png" alt="Ejemplo de detección del Analista de Seguridad de Bits, titulado 'Detección de phishing de Okta con verificación de origen de FastPass'." style="width:100%;" >}} +{{< img src="bits_ai/bits_security_analyst_example.png" alt="Ejemplo de detección de Bits Security Analyst, titulada 'Okta phishing detection with FastPass origin verificación'." style="width:100%;" >}} -En el panel lateral, puede ver los hallazgos de investigación de Bits AI, incluyendo: +En el panel lateral, puede ver los hallazgos de investigación de Bits AI, que incluyen: - Conclusión general - Evidencia clave utilizada para llegar a esa conclusión -- Pasos de investigación que muestran las consultas de datos de Bits AI, incluyendo resultados incrustados y enlaces a consultas completas -- Análisis de cada paso de investigación - -También puede tomar pasos adicionales directamente desde el panel lateral: -- Cree un caso con resultados de investigación de Bits AI prellenados -- Ejecute un flujo de trabajo con un plano SOAR -- Declare un incidente -- Agregue una supresión de regla -- Archive la señal, o visualice la señal con la interfaz habitual de Cloud SIEM -- Déle retroalimentación a Bits AI sobre su análisis - -Además, cuando utiliza notificaciones de Cloud SIEM para enviar nuevas alertas de señales a Slack o Jira, Bits AI actualiza automáticamente esas notificaciones. Incluye respuestas que muestran la conclusión de investigación de Bits AI, con un enlace a la investigación completa. - -### Fuentes soportadas {#supported-sources} - -Bits AI puede realizar investigaciones sobre las siguientes fuentes de registro de seguridad: -- Amazon GuardDuty - - Las [categorías de hallazgos][6] incluyen comportamiento anómalo de IAM, exfiltración y uso indebido de credenciales de EC2, exposición de datos de S3, evasión de defensa de CloudTrail o S3, y secuencias de ataque que correlacionan la compromisión de credenciales de IAM y datos de S3 +- Siguientes pasos sugeridos para remediar el problema o suprimir reglas de detección con atributos específicos +- Pasos de investigación que muestran las consultas de datos de Bits AI, incluidos resultados integrados y enlaces a consultas completas +- Análisis de cada paso de la investigación + +También puede realizar pasos adicionales directamente desde el panel lateral: +- Crear un elemento de trabajo con resultados de investigación de Bits AI precargados +- Ejecutar un flujo de trabajo con un plano de SOAR +- Declarar un incidente +- Agregar una supresión de regla +- Archivar la señal o visualizar la señal con la interfaz habitual de Cloud SIEM +- Dar retroalimentación a Bits AI sobre su análisis + +Además, cuando utiliza las notificaciones de Cloud SIEM para enviar nuevas alertas de señales a Slack o Jira, Bits AI actualiza automáticamente esas notificaciones. Incluye respuestas que muestran la conclusión de la investigación de Bits AI, con un enlace a la investigación completa. + +### Fuentes admitidas {#supported-sources} + +Bits AI puede ejecutar investigaciones en las siguientes fuentes de registro de Security: +- Amazon GuardDuty, donde los [tipos de hallazgos][6] admitidos cubren: + - Credenciales de IAM anómalas y comprometidas + - Exfiltración y uso indebido de credenciales de EC2 y recursos + - Cambios en el registro de Bedrock, invocación anómala de modelos, recopilación de costos e inyección directa de prompts + - secuencias de ataque a clústeres de EKS y ECS comprometidos + - Acceso a credenciales de Kubernetes, comportamiento anómalo, ejecución, escalada de privilegios, persistencia, cambios de políticas y llamadores malintencionados + - Comportamiento anómalo de S3, exposición de datos, llamadores malintencionados y actividad de pruebas de penetración + - Evasión de defensa de CloudTrail o S3 + - Secuencias de ataque que correlacionan el compromiso de credenciales IAM y datos de S3 - AWS CloudTrail - Azure +- Cloudflare +- CrowdStrike - GCP - Kubernetes - Microsoft Entra ID - Okta - Google Workspace - Microsoft 365 +- GitLab - GitHub +- JumpCloud +- Salesforce +- Slack - Snowflake - SentinelOne -- Phishing por correo electrónico +- Windows +- Correo electrónico de phishing ## Configurar Bits Security Analyst {#set-up-bits-security-analyst} @@ -68,34 +89,34 @@ Bits AI puede realizar investigaciones sobre las siguientes fuentes de registro Para usar Bits Security Analyst: - Asegúrese de que su organización esté utilizando una versión no heredada de Cloud SIEM. Si necesita asistencia, comuníquese con [soporte de Datadog][1]. -- Para configurar Bits Security Analyst, necesita el **Bits Security Analyst Config Write** [permiso][2]. -- Para ver investigaciones, debe tener **14 días o más** de historial de registros. Si tiene un historial de registros más corto, aún puede configurar Bits Security Analyst, pero no verá ninguna investigación hasta que tenga ese historial. +- Para configurar Bits Security Analyst, necesita el **Bits Security Analyst Config Write** [permission][2]. +- Para visualizar las investigaciones, debe tener **14 días o más** de historial de registros. Si tiene un historial de registros más corto, aún puede configurar Bits Security Analyst, pero no verá ninguna investigación hasta que tenga esa cantidad de historial. ### Configuración {#setup} -Cuando habilita Bits Security Analyst, Datadog analiza sus reglas, incluidas las reglas personalizadas, para determinar si puede investigar con confianza las señales asociadas con ellas. Para todas las reglas elegibles de severidad media o superior, comienza a investigar señales de manera autónoma. +Cuando habilita Bits Security Analyst, Datadog analiza sus reglas, incluidas las reglas personalizadas, para determinar si puede investigar con confianza las señales asociadas a ellas. Para todas las reglas elegibles por encima de una gravedad media, comienza a investigar señales de forma autónoma. -La elegibilidad de la regla depende de si Datadog ha construido la capacidad de investigación para la fuente de registro y si el Agente puede investigar la regla específica. Si tiene nuevas reglas personalizadas para evaluar, o desea preguntar sobre una regla que no fue habilitada, comuníquese con [soporte de Datadog][1]. +La elegibilidad de las reglas depende de si Datadog ha desarrollado la capacidad de investigación para la fuente de registros y de si el Agent puede investigar la regla específica. Si tiene nuevas reglas personalizadas para evaluar o desea consultar sobre una regla que no se hizo elegible, comuníquese con [soporte de Datadog][1]. -1. En Datadog, vaya a {{< ui >}}Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > [{{< ui >}}Bits Security Analyst{{< /ui >}}][3]. -1. Active el interruptor para {{< ui >}}Enable Bits Security Analyst{{< /ui >}}. Aparecen configuraciones adicionales. -1. (Opcional) Configure qué reglas y qué niveles de severidad desea que Bits Security Analyst investigue automáticamente en las señales. Hay dos formas de hacerlo: - - Haga clic en {{< ui >}}Rule Settings{{< /ui >}} para configurar investigaciones para reglas individuales. Puede cambiar la severidad mínima para que las señales sean investigadas, y habilitar o deshabilitar reglas individuales para la investigación. - - Haga clic en {{< ui >}}Query Filter{{< /ui >}} para escribir un filtro de consulta de señales, de modo que Bits Security Analyst solo investigue señales que coincidan con su filtro. -1. Algunas fuentes de registro requieren credenciales para ejecutar o mejorar investigaciones accediendo a registros, telemetría u otros datos que no están en Datadog. Para agregar credenciales, haga clic en {{< ui >}}Edit credentials{{< /ui >}}. En la ventana {{< ui >}}Select or Add Connection{{< /ui >}} que se abre, siga las indicaciones para seleccionar una [conexión existente][4] del Catálogo de Acciones, o agregue una conexión. Datadog almacena y restringe de manera segura todas las credenciales utilizando el Catálogo de Acciones. +1. En Datadog, vaya a {{< ui >}}Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Bits Security Analyst{{< /ui >}} > [{{< ui >}}Analyst Configuration{{< /ui >}}][3]. +1. Active el interruptor para {{< ui >}}Enable Bits Security Analyst{{< /ui >}}. Aparecerán configuraciones adicionales. +1. (Opcional) Configure para qué reglas y qué niveles de gravedad desea que Bits Security Analyst investigue señales automáticamente. Hay dos formas de hacerlo: + - Haga clic en {{< ui >}}Rule Settings{{< /ui >}} para configurar las investigaciones de reglas individuales. Puede cambiar la gravedad mínima para que las señales sean investigadas y habilitar o deshabilitar reglas individuales para la investigación. + - Haga clic en {{< ui >}}Query Filter{{< /ui >}} para escribir un filtro de consulta de señales, de modo que Bits Security Analyst solo investigue las señales que coincidan con su filtro. +1. Algunas fuentes de registro requieren credenciales para ejecutar o mejorar las investigaciones mediante el acceso a registros, telemetría u otros datos que no están en Datadog. Para agregar credenciales, haga clic en {{< ui >}}Edit credentials{{< /ui >}}. En la ventana {{< ui >}}Select or Add Connection{{< /ui >}} que se abre, siga las instrucciones para seleccionar una [conexión existente][4] del Catálogo de acciones o agregue una conexión. Datadog almacena y restringe de forma segura todas las credenciales mediante el Catálogo de acciones. - Algunas fuentes de registro requieren configuración adicional para que pueda crear conexiones HTTP. Aquí hay un ejemplo: - {{< collapse-content title="Configure SentinelOne" level="h4" expanded=false id="sentinelone" >}} + Algunas fuentes de registro requieren una configuración adicional para que pueda crear conexiones HTTP. Aquí hay algunos ejemplos: + {{< collapse-content title="Configurar SentinelOne" level="h4" expanded=false id="sentinelone" >}}
  1. En SentinelOne, asegúrese de tener permiso para crear un token de API. Cree un usuario de servicio de API de S1, luego asigne el rol {{< ui >}}Viewer{{< /ui >}} a ese usuario.
  2. En Datadog, en la ventana {{< ui >}}Select or Add Connection{{< /ui >}}, en el menú desplegable, seleccione {{< ui >}}New Connection{{< /ui >}}, luego haga clic en el mosaico {{< ui >}}HTTP{{< /ui >}}.
  3. Agregue la siguiente información:
      -
    • En el campo {{< ui >}}Description{{< /ui >}}, Datadog recomienda agregar la fecha de expiración de su token, para que sea fácilmente accesible.
    • -
    • En el campo {{< ui >}}Base URL{{< /ui >}}, ingrese la URL de su Consola de Gestión de SentinelOne.
    • -
    • Bajo {{< ui >}}Token Auth{{< /ui >}}: +
    • En el campo {{< ui >}}Description{{< /ui >}}, Datadog recomienda agregar la fecha de vencimiento de su token para que sea fácilmente accesible.
    • +
    • En el campo {{< ui >}}Base URL{{< /ui >}}, ingrese la URL de su consola de administración de SentinelOne.
    • +
    • En {{< ui >}}Token Auth{{< /ui >}}:
        -
      1. Ingrese un nombre para su token en el campo {{< ui >}}Token Name{{< / ui >}}, y su token de API en el campo {{< ui >}}Token Value{{< /ui >}}.
      2. +
      3. Ingrese un nombre para su token en el campo {{< ui >}}Token Name{{< / ui >}} y su token de API en el campo {{< ui >}}Token Value{{< /ui >}}.
      4. En la pestaña {{< ui >}}Headers{{< /ui >}}, bajo {{< ui >}}Request Headers{{< /ui >}}, haga clic en {{< ui >}}Add a Header{{< /ui >}}. Agregue los siguientes dos encabezados: @@ -121,19 +142,111 @@ La elegibilidad de la regla depende de si Datadog ha construido la capacidad de {{< /collapse-content >}} -## Desactive el Analista de Seguridad de Bits {#disable-bits-security-analyst} + {{< collapse-content title="Configurar CrowdStrike" level="h4" expanded=false id="crowdstrike" >}} +
          +
        1. En CrowdStrike, vaya a Support and resources, luego haga clic en API clients and keys.
        2. +
        3. Haga clic en Create API client.
        4. +
        5. Seleccione los contextos para el cliente de API: +
            +
          • Establezca todos los contextos en Read Only, excepto NGSIEM.
          • +
          • Establezca el contexto de NGSIEM en Lectura y escritura. La consulta de NGSIEM requiere solicitudes POST, que CrowdStrike clasifica como una acción de escritura.
          • +
          +
        6. +
        7. Después de crear el cliente de API, guarde de forma segura el ID de cliente, el Secreto y la URL base. El secreto solo se muestra una vez, y la URL base debe coincidir con su región de CrowdStrike.
        8. +
        9. En Datadog, en la ventana {{< ui >}}Select or Add Connection{{< /ui >}}, en el menú desplegable, seleccione {{< ui >}}New Connection{{< /ui >}}, luego haga clic en el mosaico {{< ui >}}HTTP{{< /ui >}}.
        10. +
        11. Agregue la siguiente información: +
            +
          • En el campo {{< ui >}}Base URL{{< /ui >}}, ingrese su URL de administración de CrowdStrike.
          • +
          • Para {{< ui >}}Authentication Type{{< /ui >}}, seleccione {{< ui >}}2 Step Auth{{< /ui >}}.
          • +
          +
        12. +
        13. En {{< ui >}}Query your access token{{< /ui >}}: +
            +
          • Para {{< ui >}}Secret Type{{< /ui >}}, seleccione {{< ui >}}Token Auth{{< /ui >}}, luego agregue dos tokens: +
        + + + + + + + + + + + + + + +
        Nombre del tokenValor del token
        secretSu secreto de CrowdStrike
        clientidSu ID de cliente de CrowdStrike
        +
      5. +
      6. En el campo {{< ui >}}Request URL{{< /ui >}}, ingrese {your_base_url}/oauth2/token (por ejemplo, https://api.crowdstrike.com/oauth2/token).
      7. +
      8. En el campo {{< ui >}}Body{{< /ui >}}, agregue su client_id y client_secret. El tipo de contenido debe ser application/x-www-form-urlencoded.
      9. +
    +
  4. +
  5. En {{< ui >}}Get Access Token from Response{{< /ui >}}: +
      +
    • Establecer {{< ui >}}Variable Path to Access Token{{< /ui >}} en body.access_token.
    • +
    • Establecer {{< ui >}}Refresh Interval{{< /ui >}} en 1700.
    • +
    • En {{< ui >}}Request Headers{{< /ui >}}, agregue los siguientes dos encabezados: + + + + + + + + + + + + + + + +
      NombreValor
      AuthorizationBearer seguido de un espacio, luego {{accessToken}}
      Acceptapplication/json
      +
    • +
    +
  6. +
  7. Haga clic en {{< ui >}}Next, Confirm Access{{< /ui >}} para verificar su conexión.
  8. +
+ {{< /collapse-content >}} + +### Agregue fuentes de conocimiento {#add-knowledge-sources} + +Puede proporcionar contexto adicional para Bits Security Analyst, como detalles sobre las reglas de autorización, políticas y entorno de su organización, lo que permite a Bits producir investigaciones más precisas adaptadas a las necesidades de su organización. + +Para agregar conocimiento, en Datadog, vaya a {{< ui >}}Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Bits Security Analyst{{< /ui >}} > [{{< ui >}}Knowledge Sources{{< /ui >}}][8]. Allí, puede agregar dos tipos de conocimiento: +- **Contexto general de la organización (Bits.md)**: Instrucciones a nivel de organización que Bits Security Analyst debe aplicar a todas las investigaciones. + 1. Haga clic en **Editar** para que el campo sea editable y pueda realizar sus cambios. + 1. Haga clic en **Guardar**. +- **Contexto situacional**: Hechos específicos de la investigación que Bits Security Analyst debe aplicar en situaciones específicas. Puede buscar y filtrar la tabla de entradas de contexto, y elegir visualizar las entradas caducadas, para obtener una descripción general del contexto existente. + 1. Haga clic en **Crear entrada de contexto**. En la ventana que se abre, ingrese: + 1. **Título**: Un título breve para su entrada. + 1. **Descripción del contexto**: La información que desea que Bits Security Analyst tome en cuenta. + 1. **Estado**: Elija habilitar esta pieza de contexto o guardarla sin habilitarla. + 1. **Fecha de vencimiento** (opcional): Una fecha para que Bits Security Analyst deje de tomar en cuenta esta pieza de contexto. + 1. Haga clic en **Crear entrada**. La ventana se cierra y su contexto aparece en la tabla. + +### Recibir notificaciones de investigaciones completadas {#get-notifications-for-completed-investigations} + +Puede crear reglas de notificación de seguridad para recibir una notificación cuando Bits Security Analyst complete una investigación. Para hacerlo, siga las instrucciones en [Crear reglas de notificaciones][7]. Al especificar las etiquetas y atributos que deben estar presentes para que se active la regla de notificación, agregue la etiqueta `@workflow.bits_investigator.state:*`. + +## Deshabilitar Bits Security Analyst {#disable-bits-security-analyst} -1. En Datadog, vaya a {{< ui >}}Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > [{{< ui >}}Bits Security Analyst{{< /ui >}}][3]. -1. Desplácese hasta la parte inferior de la página. Bajo {{< ui >}}Disable Bits Security Analyst{{< /ui >}}, apague el interruptor de {{< ui >}}Enabled{{< /ui >}}. -
Desactivar el Analista de Seguridad de Bits restablece permanentemente todas las configuraciones.
+1. En Datadog, vaya a {{< ui >}}Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Bits Security Analyst{{< /ui >}} > [{{< ui >}}Analyst Configuration{{< /ui >}}][3]. +1. Desplácese hasta la parte inferior de la página. En {{< ui >}}Disable Bits Security Analyst{{< /ui >}}, desactive el interruptor{{< ui >}}Enabled{{< /ui >}}. +
Deshabilitar Bits Security Analyst restablece permanentemente todos los ajustes de configuración.
-## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/help [2]: /es/account_management/rbac/permissions/#cloud-security-platform -[3]: https://app.datadoghq.com/security/configuration/bits-ai-security-analyst +[3]: https://app.datadoghq.com/security/configuration/bits-ai-security-analyst/analyst-configuration [4]: /es/actions/connections/ [5]: https://app.datadoghq.com/security/siem/signals -[6]: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html \ No newline at end of file +[6]: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html +[7]: /es/security/notifications/rules/#create-notification-rules +[8]: https://app.datadoghq.com/security/configuration/bits-ai-security-analyst/knowledge-sources \ No newline at end of file diff --git a/hugo/content/es/cloud_cost_management/recommendations/_index.md b/hugo/content/es/cloud_cost_management/recommendations/_index.md index 7768d1f3a51..a42f7b6f8f1 100644 --- a/hugo/content/es/cloud_cost_management/recommendations/_index.md +++ b/hugo/content/es/cloud_cost_management/recommendations/_index.md @@ -328,7 +328,8 @@ multifiltersearch: - category: Downsize cloud_provider: AWS recommendation_description: Instancias de RDS que utilizan menos del 80% de las - IOPS aprovisionadas durante las últimas dos semanas. + IOPS aprovisionadas durante las últimas dos semanas. No es aplicable a las instancias + de Amazon Aurora, que no disponen de una opción configurable de IOPS aprovisionadas. recommendation_prerequisites: '' recommendation_type: Downsize RDS Instance Provisioned IOPS resource_type: RDS Instance @@ -364,7 +365,7 @@ multifiltersearch: cloud_provider: AWS recommendation_description: Un bucket de S3 con costos de almacenamiento mínimos y sin uso significativo de la API de objetos (actividad de Get, Put, Copy, Head - o carga multipart). + o carga multipartes). recommendation_prerequisites: '[Cloud Cost Management](https://www.datadoghq.com/product/cloud-cost-management) or [Storage Management](https://www.datadoghq.com/product/storage-management)' recommendation_type: Delete S3 Bucket @@ -379,7 +380,7 @@ multifiltersearch: resource_type: S3 Bucket - category: Terminate cloud_provider: AWS - recommendation_description: Buckets de S3 con cargas multipart incompletas de + recommendation_description: Buckets de S3 con cargas multipartes incompletas de más de 7 días de antigüedad que consumen espacio de almacenamiento. recommendation_prerequisites: '[Storage Lens](/integrations/amazon_s3_storage_lens/)' recommendation_type: Delete abandoned S3 multipart uploads @@ -510,6 +511,14 @@ multifiltersearch: recommendation_prerequisites: '' recommendation_type: Delete Container Registry resource_type: Container Registry + - category: Configure + cloud_provider: Azure + recommendation_description: Identifica cuentas de Azure Foundry que ya utilizan + la caché de prompts por debajo de la tasa de aciertos objetivo y recomienda + mejorar la configuración de caché para reducir los costos de tokens de entrada. + recommendation_prerequisites: '' + recommendation_type: Optimize Prompt Caching + resource_type: Foundry Account - category: Terminate cloud_provider: Azure recommendation_description: Un clúster se considera no utilizado y detenido si @@ -802,21 +811,21 @@ multifiltersearch: resource_type: Kubernetes Cluster - category: Downsize cloud_provider: AWS - recommendation_description: Los contenedores están utilizando solo una fracción + recommendation_description: Los containers están utilizando solo una fracción de su CPU o memoria solicitada. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Deployment resource_type: Kubernetes Deployment - category: Downsize cloud_provider: Azure - recommendation_description: Los contenedores están utilizando solo una fracción + recommendation_description: Los containers están utilizando solo una fracción de su CPU o memoria solicitada. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Deployment resource_type: Kubernetes Deployment - category: Downsize cloud_provider: GCP - recommendation_description: Los contenedores están utilizando solo una fracción + recommendation_description: Los containers están utilizando solo una fracción de su CPU o memoria solicitada. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Deployment @@ -856,7 +865,7 @@ multifiltersearch: name: Requisitos previos de la recomendación title: Recomendaciones de Cloud Cost --- -## Resumen {#overview} +## Descripción general {#overview} [Cloud Cost Recommendations][1] proporciona recomendaciones sobre cómo reducir su gasto en la nube y en IA optimizando el uso de sus recursos en la nube y el uso de la API de IA/LLM. Datadog genera un conjunto de recomendaciones combinando sus datos de observabilidad con los datos de facturación de su proveedor subyacente para identificar recursos en la nube huérfanos, heredados o sobreaprovisionados, así como el uso no optimizado de IA. diff --git a/hugo/content/es/cloud_cost_management/setup/aws.md b/hugo/content/es/cloud_cost_management/setup/aws.md index 348c6fd1316..468d0623995 100644 --- a/hugo/content/es/cloud_cost_management/setup/aws.md +++ b/hugo/content/es/cloud_cost_management/setup/aws.md @@ -17,57 +17,62 @@ further_reading: text: Obtenga información sobre su factura de Oracle title: AWS --- -## Resumen {#overview} +## Descripción general {#overview} Para configurar Cloud Cost Management en Datadog, necesita: -1. Una cuenta de AWS con acceso a facturación +1. Una cuenta de AWS con acceso a la facturación 2. La integración de AWS instalada en Datadog -3. Un Informe de Costos y Uso (siga los pasos a continuación para crear uno) +3. Un informe de costos y uso (siga los pasos a continuación para crear uno) ## Configuración {#setup} -Puede configurar usando la [API][21], [Terraform][22] o directamente en Datadog siguiendo las instrucciones a continuación. +Puede realizar la configuración mediante la [API][21], [Terraform][22], el flujo guiado **Set up with AI Agent** o directamente en Datadog siguiendo las instrucciones a continuación. ### Configure la integración de AWS {#configure-the-aws-integration} Navegue a [Setup & Configuration][7], agregue una cuenta de AWS y siga los pasos para configurar la integración de AWS. -**Nota**: Datadog recomienda configurar un Informe de Costos y Uso desde una [cuenta de **gestión de AWS**][2] para visibilidad de costos en cuentas **miembro** relacionadas. +**Nota**: Datadog recomienda configurar un informe de costos y uso (Cost and Usage Report) desde una [**cuenta de administración** de AWS][2], no desde una cuenta de administrador delegado, para obtener visibilidad de los costos en las **cuentas miembro** relacionadas. Una cuenta de administrador delegado no puede descubrir otras cuentas miembro. -Si envía un Informe de Costos y Uso desde una cuenta **miembro de AWS**, asegúrese de haber seleccionado las siguientes opciones en las [preferencias][3] de su **cuenta de gestión**: +Si envía un informe de costos y uso desde una **cuenta miembro** de AWS, asegúrese de haber seleccionado las siguientes opciones en las [preferencias][3] de su **cuenta de administración**: - {{< ui >}}Linked Account Access{{< /ui >}} - {{< ui >}}Linked Account Refunds and Credits{{< /ui >}} - {{< ui >}}Linked Account Discounts{{< /ui >}} -Estas configuraciones aseguran una precisión total de costos al permitir cálculos de costos periódicos contra el AWS Cost Explorer. +Esta configuración ayuda a garantizar una precisión total de los costos al permitir cálculos de costos periódicos contra el AWS Cost Explorer. {{< tabs >}} {{% tab "CloudFormation" %}} -{{< img src="cloud_cost/setup/aws_cloudformation_setup.png" alt="Formulario de configuración de Cloud Cost Management en el modo CloudFormation" style="width:100%" >}} +{{< img src="cloud_cost/setup/aws_cloudformation_setup.png" alt="Formulario de configuración de Cloud Cost Management en modo CloudFormation" style="width:100%" >}} ### Seleccione los recursos a crear {#select-the-resources-to-create} -La pila de CloudFormation se puede configurar de tres maneras dependiendo de sus recursos de AWS existentes: +La pila de CloudFormation se puede configurar de tres maneras según sus recursos de AWS existentes: -* **Nueva configuración**: Seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} para crear tanto el informe como su bucket S3 -* **Bucket existente**: Seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} y deseleccione {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un bucket S3 existente -* **Informe existente**: Deseleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} para importar un informe de Costos y Uso existente +* **Configuración nueva**: seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} para crear tanto el informe como su bucket de S3 +* **Bucket existente**: seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} y deseleccione {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un bucket de S3 existente +* **Informe existente**: Desmarque {{< ui >}}Create Cost and Usage Report{{< /ui >}} para importar un informe de costos y uso existente -### Configure los ajustes del Informe de Costos y Uso {#configure-the-cost-and-usage-report-settings} +### Configure los ajustes del informe de costos y uso {#configure-the-cost-and-usage-report-settings} -Ingrese los siguientes detalles para su informe de Costos y Uso: +Si utiliza un informe de Cost and Usage Report 2.0 y un bucket existentes, seleccione su informe en el campo {{< ui >}}Data Export{{< /ui >}} y continúe con el siguiente paso. -* {{< ui >}}Bucket Name{{< /ui >}}: El nombre del bucket S3 donde se almacenan los archivos del informe. -* {{< ui >}}Bucket Region{{< /ui >}}: El [código de región][100] de AWS de la región que contiene su bucket S3. Por ejemplo, `us-east-1`. -* {{< ui >}}Export Path Prefix{{< /ui >}}: El prefijo de ruta S3 donde se almacenan los archivos del informe. - * **Nota:** Los siguientes formatos de prefijo no son compatibles: vacío, que comienza con `/` (como `/` o `/cost`), o que termina con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). -* {{< ui >}}Export Name{{< /ui >}}: El nombre de su informe de Costos y Uso. +{{< img src="cloud_cost/setup/aws_data_export_selector.png" alt="Página de configuración de CCM con \"Crear informe de Cost and Usage Report\" y \"Crear bucket de S3\" desmarcados, que muestra el selector de exportación de datos utilizado para seleccionar una exportación existente" style="width:100%" >}} + +De lo contrario, ingrese los siguientes detalles para su informe de costos y uso: + +* {{< ui >}}Report Content{{< /ui >}}: La versión de su informe de costos y uso (CUR heredado o CUR 2.0). +* {{< ui >}}Bucket Name{{< /ui >}}: El nombre del bucket de S3 donde se almacenan los archivos de informe. +* {{< ui >}}Bucket Region{{< /ui >}}: El [código de región][100] de AWS de la región que contiene su bucket de S3. Por ejemplo, `us-east-1`. +* {{< ui >}}Export Path Prefix{{< /ui >}}: El prefijo de ruta de S3 donde se almacenan los archivos de informe. + * **Nota:** Los siguientes formatos de prefijo no son compatibles: vacío, que comience con `/` (como `/` o `/cost`), o que termine con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). +* {{< ui >}}Export Name{{< /ui >}}: El nombre de su informe de costos y uso. **Nota**: -Estos valores localizan su Informe de Costos y Uso existente, o definen la configuración para los recursos recién creados. -- Puede tardar entre 48 y 72 horas para que todos los datos disponibles se poblen en su organización de Datadog después de que se genere un Informe de Costos y Uso completo. Si han pasado 72 horas y los datos aún no se han poblado, contacte a [Soporte de Datadog][101]. +- Estos valores localizan su informe de costos y uso existente o definen la configuración de los recursos recién creados. +- Pueden transcurrir entre 48 y 72 horas para que todos los datos disponibles se reflejen en su organización de Datadog después de que se genere un informe de costos y uso completo. Si han transcurrido 72 horas y los datos aún no se han reflejado, comuníquese con [Datadog Support][101]. [100]: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html [101]: /es/help/ @@ -76,38 +81,43 @@ Estos valores localizan su Informe de Costos y Uso existente, o definen la confi {{% tab "Terraform" %}} -{{< img src="cloud_cost/setup/aws_terraform_setup.png" alt="Página de configuración de CCM con la opción de Terraform seleccionada, mostrando el Paso 1 expandido para configurar los ajustes del Informe de Costos y Uso, incluyendo el nombre del bucket, la región y los detalles de exportación." style="width:100%" >}} +{{< img src="cloud_cost/setup/aws_terraform_setup.png" alt="Página de configuración de CCM con la opción de Terraform seleccionada, que muestra el Paso 1 expandido para configurar los ajustes del informe de costos y uso, incluidos el nombre del bucket, la región y los detalles de exportación." style="width:100%" >}} ### Seleccione los recursos a crear {#select-the-resources-to-create-1} -La configuración de Terraform admite tres configuraciones dependiendo de sus recursos existentes de AWS: +La configuración de Terraform admite tres configuraciones según sus recursos de AWS existentes: + +* **Configuración nueva**: seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} para crear tanto el informe como su bucket de S3 +* **Bucket existente**: seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} y deseleccione {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un bucket de S3 existente +* **Bucket e informe existentes**: Desmarque {{< ui >}}Create Cost and Usage Report{{< /ui >}} y {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un informe de costos y uso y un bucket de S3 existentes -* **Nueva configuración**: Seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} para crear tanto el informe como su bucket S3 -* **Bucket existente**: Seleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} y deseleccione {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un bucket S3 existente -* **Bucket e informe existentes**: Deseleccione {{< ui >}}Create Cost and Usage Report{{< /ui >}} y {{< ui >}}Create S3 Bucket{{< /ui >}} para usar un informe y un bucket S3 existentes. +**Nota**: Si utiliza un bucket existente, verifique que AWS tenga permiso para escribir CUR en él. De lo contrario, es posible que deba actualizar la política de su bucket. -**Nota**: Si usa un bucket existente, verifique que AWS tenga permiso para escribir CURs en él. Si no, es posible que necesite actualizar la política de su bucket. +### Configure los ajustes del informe de costos y uso {#configure-the-cost-and-usage-report-settings-1} -### Configure los ajustes del Informe de Costos y Uso {#configure-the-cost-and-usage-report-settings-1} +Si utiliza un informe de Cost and Usage Report 2.0 y un bucket existentes, seleccione su informe en el campo {{< ui >}}Data Export{{< /ui >}} y continúe con el siguiente paso. -Ingrese los siguientes detalles para su informe de Costos y Uso: +{{< img src="cloud_cost/setup/aws_data_export_selector.png" alt="Página de configuración de CCM con \"Crear informe de Cost and Usage Report\" y \"Crear bucket de S3\" desmarcados, que muestra el selector de exportación de datos utilizado para seleccionar una exportación existente" style="width:100%" >}} -* {{< ui >}}Bucket Name{{< /ui >}}: El nombre del bucket S3 donde se almacenan los archivos del informe. -* {{< ui >}}Bucket Region{{< /ui >}}: El [código de región][100] de AWS de la región que contiene su bucket S3. Por ejemplo, `us-east-1`. -* {{< ui >}}Export Path Prefix{{< /ui >}}: El prefijo de ruta S3 donde se almacenan los archivos del informe. - * **Nota**: Los siguientes formatos de prefijo no son compatibles: vacío, que comienza con `/` (como `/` o `/cost`), o que termina con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). -* {{< ui >}}Export Name{{< /ui >}}: El nombre de su Informe de Costos y Uso. +De lo contrario, ingrese los siguientes detalles para su informe de costos y uso: + +* {{< ui >}}Report Content{{< /ui >}}: La versión de su informe de costos y uso (CUR heredado o CUR 2.0). +* {{< ui >}}Bucket Name{{< /ui >}}: El nombre del bucket de S3 donde se almacenan los archivos de informe. +* {{< ui >}}Bucket Region{{< /ui >}}: El [código de región][100] de AWS de la región que contiene su bucket de S3. Por ejemplo, `us-east-1`. +* {{< ui >}}Export Path Prefix{{< /ui >}}: El prefijo de ruta de S3 donde se almacenan los archivos de informe. + * **Nota:** Los siguientes formatos de prefijo no son compatibles: vacío, que comience con `/` (como `/` o `/cost`), o que termine con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). +* {{< ui >}}Export Name{{< /ui >}}: El nombre de su informe de costos y uso. **Nota**: -- Estos valores localizan su Informe de Costos y Uso existente, o definen la configuración para los recursos recién creados. -- Puede tardar entre 48 y 72 horas para que todos los datos disponibles se poblen en su organización de Datadog después de que se genere un Informe de Costos y Uso completo. Si han pasado 72 horas y los datos aún no se han poblado, contacte a [Soporte de Datadog][101]. +- Estos valores localizan su informe de costos y uso existente o definen la configuración de los recursos recién creados. +- Pueden transcurrir entre 48 y 72 horas para que todos los datos disponibles se reflejen en su organización de Datadog después de que se genere un informe de costos y uso completo. Si han transcurrido 72 horas y los datos aún no se han reflejado, comuníquese con [Datadog Support][101]. [100]: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html [101]: /es/help/ ### Copie el HCL de Terraform generado y aplique los cambios {#copy-generated-terraform-hcl-and-apply-changes} -En la interfaz de configuración de Terraform de CCM, siga las instrucciones en el paso {{< ui >}}Apply Terraform Configuration{{< /ui >}}. Resuelva cualquier problema que aparezca mientras ejecuta `terraform plan` o `terraform apply` antes de regresar a CCM para confirmar la creación de la cuenta. +En la interfaz de usuario de configuración de CCM Terraform, siga las instrucciones del paso {{< ui >}}Apply Terraform Configuration{{< /ui >}}. Resuelva cualquier problema que aparezca al ejecutar `terraform plan` o `terraform apply` antes de regresar a CCM para confirmar la creación de la cuenta. {{% /tab %}} @@ -115,46 +125,47 @@ En la interfaz de configuración de Terraform de CCM, siga las instrucciones en {{< img src="cloud_cost/setup/aws_manual_setup.png" alt="Formulario de configuración de Cloud Cost Management en modo manual" style="width:100%" >}} -### Requisito previo: genere un Informe de Costos y Uso {#prerequisite-generate-a-cost-and-usage-report} - -[Cree un Informe de Costos y Uso Legado][201] en AWS bajo la sección {{< ui >}}Data Exports{{< /ui >}}. +### Requisito previo: generar un informe de costos y uso {#prerequisite-generate-a-cost-and-usage-report} -Seleccione el tipo de exportación {{< ui >}}Legacy CUR export{{< /ui >}}. +Cree un [Cost and Usage Report 2.0][202] o un [Legacy Cost and Usage Report][201] en AWS en la sección {{< ui >}}Data Exports{{< /ui >}}. Seleccione las siguientes opciones de contenido: -* Tipo de exportación: {{< ui >}}Legacy CUR export{{< /ui >}} +* Tipo de exportación: {{< ui >}}CUR 2.0 export{{< /ui >}} o {{< ui >}}Legacy CUR export{{< /ui >}} * {{< ui >}}Include resource IDs{{< /ui >}} -* {{< ui >}}Split cost allocation data{{< /ui >}} (Habilita la Asignación de Costos de ECS. También debe optar por [AWS Split Cost Allocation][210] en las preferencias de Cost Explorer). +* {{< ui >}}Split cost allocation data{{< /ui >}} (Habilita la asignación de costos de ECS. También debe optar por [AWS Split Cost Allocation][210] en las preferencias de Cost Explorer). * {{< ui >}}Refresh automatically{{< /ui >}} +* Opcional: Habilite {{< ui >}}IAM Principal Allocation Data{{< /ui >}} para la asignación de costos de Bedrock de IAM Principal a nivel de usuario granular. Seleccione las siguientes opciones de entrega: * Granularidad de tiempo: {{< ui >}}Hourly{{< /ui >}} -* Versionado del informe: {{< ui >}}Create new report version{{< /ui >}} +* Versiones de informe: {{< ui >}}Create new report version{{< /ui >}} * Tipo de compresión: {{< ui >}}GZIP{{< /ui >}} o {{< ui >}}Parquet{{< /ui >}} -### Localice el Informe de Costos y Uso {#locate-the-cost-and-usage-report} +**Nota**: Datadog solo admite un Cost and Usage Report por cuenta miembro. + +### Localice el Cost and Usage Report {#locate-the-cost-and-usage-report} -Si se ha alejado del informe que creó en la sección de requisitos previos, siga la documentación de AWS para [ver sus Exportaciones de Datos][204]. Seleccione la exportación CUR heredada que creó, luego seleccione {{< ui >}}Edit{{< /ui >}} para ver los detalles de la exportación. +Si ha salido del informe que creó en la sección de requisitos previos, siga la documentación de AWS para [ver sus exportaciones de datos][204]. Seleccione la exportación CUR que creó, luego seleccione {{< ui >}}Edit{{< /ui >}} para ver los detalles de la exportación. -Para permitir que Datadog localice el Informe de Costos y Uso, complete los campos con sus detalles correspondientes: +Para permitir que Datadog localice el informe de costos y uso, complete los campos con sus detalles correspondientes: -* {{< ui >}}Bucket Name{{< /ui >}}: Este es el nombre del bucket S3 en la sección de configuración de almacenamiento de exportación de datos. -* {{< ui >}}Bucket Region{{< /ui >}}: Esta es la región donde se encuentra su bucket. Por ejemplo, `us-east-1`. -* {{< ui >}}Export Path Prefix{{< /ui >}}: Este es el prefijo de ruta S3 en la sección de configuración de almacenamiento de exportación de datos. - * **Nota**: Los siguientes formatos de prefijo no son compatibles: vacío, que comienza con `/` (como `/` o `/cost`), o que termina con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). -* {{< ui >}}Export Name{{< /ui >}}: Este es el nombre de la exportación en la sección de nombre de exportación. +* {{< ui >}}Bucket Name{{< /ui >}}: Este es el nombre del bucket de S3 en la sección Data export storage settings. +* {{< ui >}}Bucket Region{{< /ui >}}: Esta es la región en la que se encuentra su bucket. Por ejemplo, `us-east-1`. +* {{< ui >}}Export Path Prefix{{< /ui >}}: Este es el prefijo de ruta de S3 en la sección de Data export storage settings. + * **Nota:** Los siguientes formatos de prefijo no son compatibles: vacío, que comience con `/` (como `/` o `/cost`), o que termine con `/` (como `cost/`). Los prefijos que contienen `/` en el medio son compatibles (como `cost/hourly`). +* {{< ui >}}Export Name{{< /ui >}}: Este es el nombre de exportación (Export name) en la sección Export name. -**Nota**: Datadog solo admite Informes de Costos y Uso (CUR) heredados generados por AWS. No modifique ni mueva los archivos generados por AWS, ni intente proporcionar acceso a archivos generados por un tercero. +**Nota**: Datadog solo admite informes de costos y uso (CURs) generados por AWS. No modifique ni mueva los archivos generados por AWS, ni intente proporcionar acceso a archivos generados por terceros. {{< site-region region="gov,gov2" >}} -
El punto final de los Informes de Costos y Uso de AWS se utiliza para validar los campos anteriores contra la exportación CUR en su bucket S3. Este punto final no está validado por FIPS.
+
El punto de conexión de AWS Cost and Usage Reports se utiliza para validar los campos anteriores con la exportación CUR en su bucket de S3. Este punto de conexión no está validado por FIPS.
{{< /site-region >}} -### Configure el acceso al Informe de Costos y Uso {#configure-access-to-the-cost-and-usage-report} +### Configure el acceso al informe de costos y uso {#configure-access-to-the-cost-and-usage-report} -[Cree una política][205] en AWS para asegurar que Datadog tenga permisos para acceder al CUR y al bucket S3 en el que está almacenado. Use el siguiente JSON: +[Cree una política][205] en AWS para asegurarse de que Datadog tenga permisos para acceder al CUR y al bucket de S3 en el que está almacenado. Utilice el siguiente JSON: {{< code-block lang="yaml" collapsible="true" >}} { @@ -209,101 +220,146 @@ Para permitir que Datadog localice el Informe de Costos y Uso, complete los camp ### Adjunte la política al rol de integración de Datadog {#attach-the-policy-to-the-datadog-integration-role} -Adjunte la nueva política S3 al rol de integración de Datadog. +Adjunte la nueva política de S3 al rol de integración de Datadog. -1. Navegue a {{< ui >}}Roles{{< /ui >}} en la consola de AWS IAM. -2. Localice el rol utilizado por la integración de Datadog. Por defecto, se llama **DatadogIntegrationRole**, pero el nombre puede variar si su organización lo ha renombrado. Haga clic en el nombre del rol para abrir la página de resumen del rol. +1. Navegue a {{< ui >}}Roles{{< /ui >}} en la consola de IAM de AWS. +2. Localice el rol utilizado por la integración de Datadog. De forma predeterminada se llama **DatadogIntegrationRole**, pero el nombre puede variar si su organización lo ha cambiado. Haga clic en el nombre del rol para abrir la página de resumen del rol. 3. Haga clic en {{< ui >}}Attach policies{{< /ui >}}. -4. Ingrese el nombre de la política del bucket S3 creada anteriormente. +4. Ingrese el nombre de la política de bucket de S3 creada anteriormente. 5. Haga clic en {{< ui >}}Attach policy{{< /ui >}}. -**Nota**: Puede tardar entre 48 y 72 horas para que todos los datos disponibles se carguen en su organización de Datadog después de que se genere un Informe Completo de Costos y Uso. Si han pasado 72 horas y los datos aún no se han cargado, contacte a [Soporte de Datadog][18]. +**Nota**: Puede tomar entre 48 y 72 horas para que todos los datos disponibles se completen en su organización de Datadog después de que se genere un Informe de Costos y Uso completo. Si han pasado 72 horas y los datos aún no se han completado, comuníquese con [Soporte de Datadog][18]. [201]: https://docs.aws.amazon.com/cur/latest/userguide/dataexports-create-legacy.html +[202]: https://docs.aws.amazon.com/cur/latest/userguide/dataexports-create-standard.html [204]: https://docs.aws.amazon.com/cur/latest/userguide/dataexports-view.html [205]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html [210]: https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html {{% /tab %}} +{{% tab "AI Agent" %}} + +El flujo **Set up with AI Agent** crea o importa un Informe de Costos y Uso y genera Terraform para que usted lo revise antes de aplicarlo. Datadog proporciona un aviso de configuración que usted ejecuta en su propio agente de codificación, como Claude Code o Cursor. + +### Requisitos previos {#prerequisites} + +- Una cuenta de AWS ya conectada a Datadog a través de una integración basada en roles. Las cuentas que se autentican con un par de claves de acceso no son compatibles, porque la política de lectura de informes debe adjuntarse a un rol de IAM. +- El permiso **AWS Configurations Manage**. +- Un agente de codificación instalado localmente. Datadog proporciona instrucciones para Claude Code y Cursor. + +### Inicie el flujo en Datadog {#start-the-flow-in-datadog} + +1. Navegue a [Setup & Configuration][300], busque {{< ui >}}Amazon Web Services{{< /ui >}} y haga clic en {{< ui >}}Add Account{{< /ui >}}. +2. Seleccione {{< ui >}}Set up with AI agent{{< /ui >}}. Datadog genera una clave de API administrada y una clave de aplicación para la sesión. +3. Inicie su agente: + - **Claude Code**: Copie el comando generado y ejecútelo en su terminal. + - **Cursor**: Haga clic en {{< ui >}}Open in Cursor{{< /ui >}} para descargar sus credenciales y abrir Cursor con el mensaje precargado. +4. Deje abierta la página de configuración de Datadog mientras el agente trabaja. Después de que Datadog detecte su nueva configuración, el botón {{< ui >}}Waiting for agent{{< /ui >}} cambiará a {{< ui >}}Setup complete{{< /ui >}}. Haga clic en él para finalizar. + +### Complete la configuración con el agente {#complete-the-setup-with-the-agent} + +1. Elija un formato de informe de costos y uso: + - **CUR 2.0**: Recomendado y seleccionado de forma predeterminada para informes nuevos. + - **CUR heredado**: Disponible para un informe heredado existente o como alternativa. +2. Seleccione los recursos a crear. El flujo verifica si existe un informe de costos y uso antes de crear uno nuevo. Usted puede: + - Crear un informe de costos y uso y su bucket de S3 + - Usar un informe y un bucket de S3 existentes +3. Revise la configuración de Terraform generada y luego aplíquela para terminar de configurar la cuenta. + +[300]: https://app.datadoghq.com/cost/setup + +{{% /tab %}} + {{< /tabs >}} +#### Permisos para las recomendaciones de AWS Cost Optimization Hub {#permissions-for-aws-cost-optimization-hub-recommendations} + +Cloud Cost Management genera algunas [recomendaciones][30] a partir de datos obtenidos de [AWS Cost Optimization Hub][31]. Para que Datadog reciba estas recomendaciones, el rol de IAM de la integración de AWS de Datadog debe incluir los siguientes permisos: + +- `cost-optimization-hub:GetRecommendation` +- `cost-optimization-hub:ListRecommendations` + +Estos permisos forman parte de la política de IAM predeterminada de la integración de AWS. Si configuró la integración de AWS recientemente con las [plantillas de CloudFormation o Terraform][32], ya cuenta con estos permisos. + +Si configuró la integración de AWS antes de que estos permisos se agregaran a la política predeterminada, actualice su política de IAM para incluirlos. Para consultar la política actual, vea la documentación de [Amazon Web Services integration][32]. + ### Filtrado de cuentas {#account-filtering} -Utilice el Filtrado de Cuentas para controlar qué cuentas miembro de AWS se deben incluir en Cloud Cost Management. Filtrar cuentas no incurre en costos adicionales de Datadog. +Utilice el filtrado de cuentas para controlar qué cuentas miembro de AWS se incluirán en Cloud Cost Management. Filtrar cuentas no genera costos adicionales en Datadog. -Usar el Filtrado de Cuentas requiere una cuenta de gestión de AWS. Puede configurar filtros de cuentas después de que una cuenta haya sido configurada en Cloud Cost Management. +El uso del filtrado de cuentas requiere una cuenta de administración de AWS. Puede configurar filtros de cuenta después de que una cuenta se haya configurado en Cloud Cost Management. -**Nota:** Los filtros de cuentas no son compatibles con la búsqueda por etiquetas. +**Nota:** Los filtros de cuenta no son compatibles con la búsqueda por etiquetas. -#### Configure filtros de cuentas para una cuenta existente {#configure-account-filters-for-an-existing-account} +#### Configurar filtros de cuenta para una cuenta existente {#configure-account-filters-for-an-existing-account} -Navegue a [**Cloud Cost** > **Settings**, seleccione **Accounts**][17], y luego haga clic en {{< ui >}}Manage Account{{< /ui >}} para la cuenta de gestión que desea filtrar. +Vaya a [**Cloud Cost** > **Settings**, seleccione **Accounts**][17] y, a continuación, haga clic en {{< ui >}}Manage Account{{< /ui >}} para la cuenta de administración que desea filtrar. -{{< img src="cloud_cost/account_filtering/manage_account.png" alt="Botón de Administrar Cuenta en la tarjeta de cuenta" style="width:100%;" >}} +{{< img src="cloud_cost/account_filtering/manage_account.png" alt="Botón Manage Account en la tarjeta de la cuenta" style="width:100%;" >}} -Haz clic en {{< ui >}}Billing dataset{{< /ui >}} para acceder a la interfaz de filtrado de cuentas. +Haga clic en {{< ui >}}Billing dataset{{< /ui >}} para acceder a la interfaz de usuario de filtrado de cuentas. {{< img src="cloud_cost/account_filtering/account_filtering.png" alt="Interfaz de filtrado de cuentas para filtrar cuentas miembro de AWS" style="width:100%;" >}} -### Obteniendo datos históricos {#getting-historical-data} +### Obtención de datos históricos {#getting-historical-data} -Si configuras un Informe de Costos y Uso que ya tiene datos históricos disponibles en S3, Datadog ingiere automáticamente hasta 15 meses de datos históricos de costos. +Si configura un informe de costos y uso (Cost and Usage Report) que ya tiene datos históricos disponibles en S3, Datadog ingiere automáticamente hasta 15 meses de datos de costos históricos. -Si tu informe recién configurado no tiene datos históricos, puedes solicitar un retroceso de AWS: +Si su informe recién configurado no tiene datos históricos, puede solicitar una carga retroactiva a AWS: -Para solicitar un retroceso de datos históricos de costos de AWS: +Para solicitar una carga retroactiva de datos de costos históricos de AWS: -1. [Abra un caso de soporte de AWS][20] y solicite un retroceso de sus datos de costos. -2. Incluya el **nombre del informe** y el **período de facturación deseado** en su solicitud. -3. Espere a que AWS procese la solicitud de retroceso. +1. [Abra una incidencia de soporte de AWS][20] y solicite una carga retroactiva de sus datos de costos. +2. Incluya el **nombre del informe** y el **periodo de facturación deseado** en su solicitud. +3. Espere a que AWS procese la solicitud de carga retroactiva. -Cuando los datos sean retrocedidos por AWS, Datadog ingiere automáticamente los datos dentro de 24 horas. +Cuando AWS carga los datos retroactivamente, Datadog los ingiere automáticamente en un plazo de 24 horas. -AWS no puede retroceder datos de costos que sean anteriores a su cuenta de AWS o que reflejen una estructura anterior de AWS Organizations. +AWS no puede cargar retroactivamente datos de costos anteriores a su cuenta de AWS o que reflejen una estructura anterior de AWS Organizations. -Para más información, consulte la [guía de solución de problemas de Informes de Costos y Uso de AWS][20]. +Para obtener más información, consulte la [guía de solución de problemas de AWS Cost and Usage Reports][20]. -## Tipos de costos {#cost-types} +## Tipos de costo {#cost-types} -Visualice sus datos importados utilizando tipos de costos predefinidos. Los tipos de costos difieren principalmente en cómo informan sobre tasas de descuento, planes de ahorro y reservas. +Visualice sus datos ingeridos utilizando tipos de costo predefinidos. Los tipos de costo difieren principalmente en cómo informan sobre las tasas de descuento, los planes de ahorro y las reservas. ### Bajo demanda {#on-demand} -**Los costos** bajo demanda representan el costo de uso a la tarifa pública y bajo demanda publicada por AWS. Esto excluye todos los planes de ahorro, reservas, descuentos, impuestos y tarifas. +Los costos **bajo demanda** representan el costo del uso a la tarifa pública bajo demanda publicada por AWS. Esto excluye todos los planes de ahorro, reservas, descuentos, impuestos y tarifas. **Nota**: En la mayoría de los casos, los costos bajo demanda no son una fuente confiable para estimar los costos reales. -### Costos amortizados y no mezclados {#amortized-and-unblended-costs} -Las métricas de costo **amortizado** distribuyen los ahorros de compromiso a lo largo del período de descuento. Esto también se llama _base devengada_. Las reservas y los planes de ahorro se deducen de un compromiso mensual y se aplican directamente al uso cubierto, en el momento del uso. Cualquier saldo no utilizado aparece como una tarifa. +### Costos amortizados y no combinados {#amortized-and-unblended-costs} +Las métricas de costo **amortizado** distribuyen los ahorros por compromiso a lo largo del plazo del descuento. Esto también se denomina _base de devengo_. Las reservas y los planes de ahorro se deducen de un compromiso mensual y se aplican directamente al uso cubierto, en el momento del uso. Cualquier remanente no utilizado aparece como una tarifa. -En contraste, las métricas de costo **no combinados** muestran todos los cargos en la fecha en que se incurren. Esto también se llama _base de costos_. Las tarifas de reservas y planes de ahorro aparecen en la fecha en que se cobraron, y no se aplican directamente al uso cubierto. Después de que los datos de facturación de un mes se finalicen, las métricas no combinadas coinciden exactamente con la factura de AWS. +Por el contrario, las métricas **sin combinar** muestran todos los cargos en la fecha en que se incurren. Esto también se denomina _base de costo_. Las tarifas de reserva y planes de ahorro aparecen en la fecha en que se cobraron y no se aplican directamente al uso cubierto. Después de que se finalizan los datos de facturación de un mes, las métricas sin combinar coinciden exactamente con la factura de AWS. ### Costos netos {#net-costs} -**Los costos** netos aplican descuentos privados directamente al uso. El costo de uso de un recurso específico representa el costo efectivo después de que se realizan todos los ahorros. +Los costos **netos** aplican descuentos privados directamente al uso. El costo de uso de un recurso específico representa el costo efectivo después de que se obtienen todos los ahorros. -En contraste, otras métricas muestran descuentos privados como partidas separadas con valor negativo y sin etiquetas de atribución de recursos. En lugar de atribuir los descuentos directamente al uso, esas métricas restan los descuentos del costo total. +Por el contrario, otras métricas muestran los descuentos privados como partidas separadas de valor negativo sin etiquetas de atribución de recursos. En lugar de atribuir los descuentos directamente al uso, esas métricas restan los descuentos del costo total. -**Los costos amortizados netos** proporcionan la representación más precisa para la asignación de costos, con todos los ahorros aplicados directamente al uso. Las métricas de costo neto están disponibles si su cuenta de AWS tiene descuentos empresariales negociados privadamente. Si su cuenta no tiene descuentos empresariales, entonces el costo **amortizado neto** y el costo **amortizado** son equivalentes. +Los costos **netos amortizados** proporcionan la representación más precisa para la asignación de costos, con todos los ahorros aplicados directamente al uso. Las métricas de costo neto están disponibles si su cuenta de AWS tiene descuentos empresariales negociados de forma privada. Si su cuenta no tiene descuentos empresariales, entonces el costo **neto amortizado** y el costo **amortizado** son equivalentes. ### Asignación de contenedores {#container-allocation} -Las métricas de **asignación de contenedores** contienen todos los mismos costos que las métricas de AWS, pero con desgloses e información adicional para cargas de trabajo de contenedores. Consulte [asignación de costos de contenedor][11] para más detalles. +Las métricas de **asignación de contenedores** contienen todos los mismos costos que las métricas de AWS, pero con desgloses y perspectivas adicionales para las cargas de trabajo de contenedores. Consulte [asignación de costos de contenedores][11] para obtener más detalles. ### Ejemplo {#example} El siguiente escenario demuestra cómo se comportan los diferentes tipos de costos. Imagínese que tiene: -- Una instancia de EC2 en ejecución durante una hora con un costo de $3 por hora de cómputo. +- Una instancia de EC2 ejecutándose durante una hora con un costo de $3 por hora de cómputo. - Un plan de ahorro que fija el precio de este tipo de instancia en $2 por hora de cómputo. -- Un descuento negociado de EDP del 10% sobre todos los demás descuentos. +- Un descuento EDP negociado del 10% además de todos los demás descuentos. -Así es como el costo de la instancia, el compromiso horario del plan de ahorros y el descuento aparecen en cada tipo de costo: +Así es como aparecen el costo de la instancia, el compromiso por hora del plan de ahorro y el descuento en cada tipo de costo: -|Tipo de costo |Uso |Plan de ahorros |Descuento | Explicación | +|Tipo de costo |Uso |Plan de ahorro |Descuento | Explicación | |:---------|-|-|-|:------------------------------------------------| |Bajo demanda |$3.00|||Esta es la tarifa pública bajo demanda.| -|No combinados |$3.00|$2.00|-$0.20|La tarifa recurrente del plan de ahorros y el descuento de EDP son líneas separadas, no asociadas con un recurso específico. (**Nota:** el costo del recurso de $3 se compensa con `SavingsPlanNegation`.) | -|Neto no combinado||$1.80||La tarifa recurrente del plan de ahorros aparece como una partida con el descuento aplicado; el costo no está asociado con un recurso específico.| -|Amortizado |$2.00||-$0.20|El descuento del plan de ahorros se aplica directamente al costo del recurso. El descuento de EDP es una partida separada. | -|Neto amortizado |$1.80|||Los descuentos del plan de ahorros y de EDP se aplican directamente al costo del recurso. | -|Neto amortizado - Recursos compartidos asignados |$1.80|||El mismo costo que el neto amortizado, pero este costo se puede desglosar aún más por dimensiones de Kubernetes y etiquetas de pod. | +|Sin combinar |$3.00|$2.00|-$0.20|La tarifa recurrente del plan de ahorro y el descuento EDP son partidas separadas, no asociadas con un recurso específico. (**Nota:** el costo del recurso de $3 se compensa con `SavingsPlanNegation`.) | +|Sin combinar neto||$1.80||La tarifa recurrente del plan de ahorro aparece como una partida con el descuento aplicado; el costo no está asociado con un recurso específico.| +|Amortizado |$2.00||-$0.20|El descuento del plan de ahorro se aplica directamente al costo del recurso. El descuento EDP es una partida separada. | +|Amortizado neto |$1.80|||Los descuentos del plan de ahorro y EDP se aplican directamente al costo del recurso. | +|Amortizado neto - Recursos compartidos asignados |$1.80|||El mismo costo que el amortizado neto, pero este costo puede desglosarse aún más por dimensiones de Kubernetes y etiquetas de pod. | ### Resumen de métricas de costo {#cost-metrics-summary} @@ -312,35 +368,35 @@ En general: - Si no tiene asignación de costos de contenedor, use `aws.cost.net.amortized`. - Si no tiene costos amortizados netos, use `aws.cost.amortized.shared.resources.allocated` o `aws.cost.amortized`. -| Métrica | Descripción | +| Métricas | Descripción | | -------------------- | --------------------- | -| `aws.cost.net.amortized.shared.resources.allocated` | Todos sus costos amortizados netos de AWS, con desgloses e información adicional para cargas de trabajo de contenedor. Requiere [asignación de costos de contenedor][11].| -| `aws.cost.net.amortized` | Costos amortizados netos, sin desgloses de costos de contenedor. | -| `aws.cost.net.unblended` | Costos netos no combinados, sin desgloses de costos de contenedor. Coincide con la factura de AWS, con descuentos especializados pre-calculados dentro de los costos de uso. | -| `aws.cost.amortized.shared.resources.allocated` | Todos sus costos amortizados de AWS, con desgloses e información adicional para cargas de trabajo de contenedor. Requiere [asignación de costos de contenedor][11].| -| `aws.cost.amortized` | Costos amortizados, sin desgloses de costos de contenedor. | -| `aws.cost.unblended` | Costos no combinados, sin desgloses de costos de contenedor. Coincide con la factura de AWS. | +| `aws.cost.net.amortized.shared.resources.allocated` | Todos sus costos netos amortizados de AWS, con desgloses e información adicional para cargas de trabajo de contenedores. Requiere [asignación de costos de contenedores][11].| +| `aws.cost.net.amortized` | Costos netos amortizados, sin desgloses de costos de contenedores. | +| `aws.cost.net.unblended` | Costos netos no combinados, sin desgloses de costos de contenedores. Coincide con la factura de AWS, con descuentos especializados calculados previamente dentro de los costos de uso. | +| `aws.cost.amortized.shared.resources.allocated` | Todos sus costos amortizados de AWS, con desgloses e información adicional para cargas de trabajo de contenedores. Requiere [asignación de costos de contenedores][11].| +| `aws.cost.amortized` | Costos amortizados, sin desgloses de costos de contenedores. | +| `aws.cost.unblended` | Costos no combinados, sin desgloses de costos de contenedores. Coincide con la factura de AWS. | | `aws.cost.ondemand` | Costos basados en la tarifa de lista proporcionada por AWS, excluyendo todos los planes de ahorro, reservas, descuentos, impuestos y tarifas. | ## Cómo Datadog enriquece sus datos de costos de AWS con etiquetas {#how-datadog-enriches-your-aws-cost-data-with-tags} -Datadog enriquece automáticamente sus datos de costos de AWS con etiquetas de múltiples fuentes. Para una visión general completa de cómo se aplican las etiquetas a los datos de costos, consulte [Etiquetas][19]. +Datadog enriquece automáticamente sus datos de costos de AWS con etiquetas de múltiples fuentes. Para obtener una descripción general completa de cómo se aplican las etiquetas a los datos de costos, consulte [Tags][19]. Las siguientes fuentes de etiquetas están disponibles para AWS: -- Columnas del Informe de Costos y Uso -- Etiquetas de Recursos de AWS -- Etiquetas de Cuenta de AWS -- Etiquetas de Integración de AWS -- Etiquetas listas para usar +- Columnas del informe de costos y uso (Cost and Usage Report) +- Etiquetas de recursos de AWS +- Etiquetas de cuenta de AWS +- Etiquetas de integración de AWS +- Etiquetas predeterminadas - Etiquetas de carga de trabajo de contenedor - Canalizaciones de etiquetas -### Columnas del Informe de Costos y Uso {#cost-and-usage-report-columns} +### Columnas del informe de costos y uso {#cost-and-usage-report-columns} -Todas las columnas con valores de cadena del [Informe de Costos y Uso (CUR)][6] de AWS se agregan como etiquetas en las métricas de costos. +Todas las columnas con valores de cadena del [Informe de costos y uso (CUR) de AWS][6] se agregan como etiquetas en las métricas de costos. -Para asegurar consistencia, Datadog normaliza las claves de etiquetas usando guiones bajos y minúsculas. Por ejemplo, la columna CUR `lineItem/ResourceId` se mapea a la clave de etiqueta `line_item/resource_id`. Los valores de las etiquetas generalmente no se modifican, manteniendo la capitalización exacta y la mayoría de los caracteres especiales. +Para garantizar la coherencia, Datadog normaliza las claves de etiqueta usando guiones bajos y minúsculas. Por ejemplo, la columna CUR `lineItem/ResourceId` se asigna a la clave de etiqueta `line_item/resource_id`. Los valores de las etiquetas generalmente no se modifican, manteniendo las mayúsculas y minúsculas exactas y la mayoría de los caracteres especiales. **Ejemplos:** @@ -350,99 +406,101 @@ Para asegurar consistencia, Datadog normaliza las claves de etiquetas usando gui |product/region|us-east-1|product/region:us-east-1| |product/usagetype|DataTransfer-Regional-Bytes|product/usagetype:DataTransfer-Regional-Bytes| -### etiquetas de recursos de AWS {#aws-resource-tags} +Consulte la [documentación de AWS CUR 2.0][33] para obtener más información sobre columnas adicionales en la exportación de CUR 2.0. + +### Etiquetas de recursos de AWS {#aws-resource-tags} -[Las etiquetas de recursos de AWS][12] son etiquetas definidas por el usuario que aparecen en la consola de AWS al ver un recurso particular, como una instancia de EC2 o un bucket de S3. +Las [etiquetas de recursos de AWS][12] son etiquetas definidas por el usuario que aparecen en la consola de AWS al ver un recurso en particular, como una instancia de EC2 o un bucket de S3. -Cuando habilita la integración de AWS con Datadog, Datadog recopila automáticamente las etiquetas de recursos para la mayoría de los recursos de AWS. Estas etiquetas se aplican a todos los costos encontrados en el CUR para un recurso dado. Las etiquetas de recursos se recuperan regularmente y se aplican a los datos de costo a partir del día en que se crean o modifican. Los valores históricos de las etiquetas no se sobrescriben cuando cambian las etiquetas. +Cuando habilita la integración de Datadog con AWS, Datadog recopila automáticamente las etiquetas de recursos para la mayoría de los recursos de AWS. Estas etiquetas se aplican a todos los costos encontrados en el CUR para un recurso determinado. Las etiquetas de recursos se recuperan regularmente y se aplican a los datos de costos a partir del día en que se crean o modifican. Los valores históricos de las etiquetas no se sobrescriben cuando las etiquetas cambian. -Si la integración de AWS no está habilitada, puede habilitar el enriquecimiento de etiquetas de recursos activando [etiquetas de asignación de costos][13] en la facturación de AWS. Esto le permite seleccionar un subconjunto de claves de etiquetas de recursos para incluir como columnas en el CUR de AWS. Datadog incluye automáticamente esas columnas como etiquetas al procesar el CUR. +Si la integración de AWS no está habilitada, puede habilitar el enriquecimiento de etiquetas de recursos activando las [etiquetas de asignación de costos][13] en la facturación de AWS. Esto le permite seleccionar un subconjunto de claves de etiqueta de recurso para incluirlas como columnas en el CUR de AWS. Datadog incluye automáticamente esas columnas como etiquetas al procesar el CUR. -### etiquetas de organización y cuenta de AWS {#aws-organization-and-account-tags} -Las Organizaciones de AWS admiten [etiquetas definidas por el usuario][14] en unidades organizativas y cuentas. Datadog obtiene y aplica automáticamente estas etiquetas a los datos de costos. Las etiquetas de cuenta se aplican a todo el uso asociado con esas cuentas. Las etiquetas de organización se aplican a todos los datos de facturación para la cuenta de pagador correspondiente. +### Etiquetas de organización y cuenta de AWS {#aws-organization-and-account-tags} +AWS Organizations admite [etiquetas definidas por el usuario][14] en unidades organizativas y cuentas. Datadog obtiene y aplica automáticamente estas etiquetas a los datos de costos. Las etiquetas de cuenta se aplican a todo el uso asociado con esas cuentas. Las etiquetas de organización se aplican a todos los datos de facturación de la cuenta pagadora correspondiente. -_Requiere la integración de Datadog AWS en la cuenta de la organización._ +_Requiere la integración de AWS de Datadog en la cuenta de la organización._ ### Etiquetas de integración de AWS {#aws-integration-tags} -Las etiquetas de integración de AWS son etiquetas establecidas en el mosaico de integración de AWS en la página de integraciones de Datadog. Se aplican a todos los costos encontrados en el CUR para la cuenta de AWS asociada. +Las etiquetas de integración de AWS son etiquetas configuradas en el mosaico de integración de AWS en la página de integraciones de Datadog. Se aplican a todos los costos encontrados en el CUR para la cuenta de AWS asociada. -### Etiquetas listas para usar {#out-of-the-box-tags} -Datadog agrega etiquetas listas para usar a los datos de costos ingeridos para ayudarle a desglosar y asignar sus costos. Estas etiquetas se derivan de su [Informe de Costos y Uso (CUR)][6] y facilitan el descubrimiento y la comprensión de los datos de costos. +### Etiquetas predeterminadas {#out-of-the-box-tags} +Datadog añade etiquetas predeterminadas a los datos de costos ingeridos para ayudarle a desglosar y asignar mejor sus costos. Estas etiquetas se derivan de su [Cost and Usage Report (CUR)][6] y facilitan el descubrimiento y la comprensión de los datos de costos. -Las siguientes etiquetas listas para usar están disponibles para filtrar y agrupar datos: +Las siguientes etiquetas predeterminadas están disponibles para filtrar y agrupar datos: | Etiqueta | Descripción | | ---------------------------- | ----------------- | | `aws_product` | El servicio de AWS que se está facturando.| | `aws_product_family` | La categoría del servicio de AWS que se está facturando (por ejemplo, Compute o Storage).| -| `aws_management_account_name`| El nombre de la cuenta de administración de AWS asociada con el ítem.| -| `aws_management_account_id` | El ID de la cuenta de administración de AWS asociada con el ítem.| -| `aws_member_account_name` | El nombre de la cuenta miembro de AWS asociada con el ítem.| -| `aws_member_account_id` | El ID de la cuenta miembro de AWS asociada con el ítem.| -| `aws_cost_type` | El tipo de cargo cubierto por este ítem (por ejemplo, Uso o Impuesto).| -| `aws_pricing_term` | Si el uso es Reserved, Spot o On-Demand.| -| `aws_reservation_arn` | El ARN de la Instancia Reservada de la que se benefició el ítem.| -| `aws_savings_plan_arn` | El ARN del Savings Plan del que se benefició el ítem.| -| `aws_usage_type` | Los detalles de uso del ítem (por ejemplo, BoxUsage:i3.8xlarge).| -| `aws_operation` | La operación asociada con el ítem (por ejemplo, RunInstances).| -| `aws_region` | La región asociada con el ítem (por ejemplo, us-east-1).| -| `aws_availability_zone` | La zona de disponibilidad asociada con el ítem.| -| `aws_resource_id` | El ID de recurso asociado con el ítem.| -| `aws_instance_type` | El tipo de instancia del ítem.| -| `aws_instance_family` | La familia de instancias asociada con su ítem (por ejemplo, Storage Optimized).| -| `aws_datatransfer_type` | El tipo de transferencia de datos asociada con el ítem (por ejemplo, cross-zone o cross-region).| -| `aws_datatransfer_direction` | La dirección de la transferencia de datos asociada con el ítem (por ejemplo, in o out).| +| `aws_management_account_name`| El nombre de la cuenta de administración de AWS asociada con el elemento.| +| `aws_management_account_id` | El ID de la cuenta de administración de AWS asociado con el elemento.| +| `aws_member_account_name` | El nombre de la cuenta miembro de AWS asociada con el elemento.| +| `aws_member_account_id` | El ID de la cuenta de miembro de AWS asociado con el elemento.| +| `aws_cost_type` | El tipo de cargo cubierto por este elemento (por ejemplo, uso o impuesto).| +| `aws_pricing_term` | Si el uso es reservado, de spot o bajo demanda.| +| `aws_reservation_arn` | El ARN de la instancia reservada de la que se benefició el elemento.| +| `aws_savings_plan_arn` | El ARN del plan de ahorro del que se benefició el elemento.| +| `aws_usage_type` | Los detalles de uso del elemento (por ejemplo, BoxUsage:i3.8xlarge).| +| `aws_operation` | La operación asociada con el elemento (por ejemplo, RunInstances).| +| `aws_region` | La región asociada con el elemento (por ejemplo, us-east-1).| +| `aws_availability_zone` | La zona de disponibilidad asociada con el elemento.| +| `aws_resource_id` | El ID del recurso asociado con el elemento.| +| `aws_instance_type` | El tipo de instancia del elemento.| +| `aws_instance_family` | La familia de instancias asociada con su elemento (por ejemplo, optimizada para almacenamiento).| +| `aws_datatransfer_type` | El tipo de transferencia de datos asociado con el elemento (por ejemplo, entre zonas o entre regiones).| +| `aws_datatransfer_direction` | La dirección de la transferencia de datos asociada con el elemento (por ejemplo, entrante o saliente).| | `is_aws_ec2_compute` | Si el uso está relacionado con EC2 compute.| -| `is_aws_ec2_compute_on_demand`| Si el uso es On-Demand.| -| `is_aws_ec2_compute_reservation`| Si el uso está asociado con una Instancia Reservada.| -| `is_aws_ec2_capacity_reservation`| Si el uso está asociado con una Reserva de Capacidad.| -| `is_aws_ec2_spot_instance` | Si el uso está asociado con una Instancia Spot.| +| `is_aws_ec2_compute_on_demand`| Si el uso es bajo demanda.| +| `is_aws_ec2_compute_reservation`| Si el uso está asociado con una Reserved Instance.| +| `is_aws_ec2_capacity_reservation`| Si el uso está asociado con una Capacity Reservation.| +| `is_aws_ec2_spot_instance` | Si el uso está asociado con una Spot Instance.| | `is_aws_ec2_savings_plan` | Si el uso está asociado con un Savings Plan.| | `aws_bill_entity` | El vendedor de AWS con el que está su cuenta. Las transacciones pueden ser una compra de AWS Marketplace (`AWS Marketplace`) o una compra de otros servicios de AWS (`AWS`). | | `aws_bill_type` | El tipo de factura que cubre este informe (como `Purchase`). | -| `aws_cost_type` | El tipo de cargo que cubre el elemento de línea (como `SavingsPlanCoveredUsage`). | -| `aws_discount_lease_term` | La duración por la cual se reserva una instancia reservada. | +| `aws_cost_type` | El tipo de cargo que cubre la partida (como `SavingsPlanCoveredUsage`). | +| `aws_discount_lease_term` | La duración del tiempo durante el cual se reserva una Reserved Instance. | | `aws_discount_purchase_option` | Cómo eligió pagar por una reserva (como `All Upfront`). | -| `aws_ec2_compute_product_family` | El tipo de uso para un artículo de línea de EC2 Compute (como `BoxUsage` o `SpotUsage`). | -| `aws_pricing_usage_unit` | La unidad de precio que AWS utilizó para calcular el costo de uso (como `Hours`). | -| `aws_reservation_modification_status` | Indica si el contrato de RI fue modificado o no alterado (como `Manual`). | +| `aws_ec2_compute_product_family` | El tipo de uso para una partida de EC2 Compute (como `BoxUsage` o `SpotUsage`). | +| `aws_pricing_usage_unit` | La unidad de precios que AWS utilizó para calcular el costo de uso (como `Hours`). | +| `aws_reservation_modification_status` | Indica si el arrendamiento de RI fue modificado o no (como `Manual`). | | `bill/billing_entity` | El vendedor de AWS con el que está su cuenta. Las transacciones pueden ser una compra de AWS Marketplace (`AWS Marketplace`) o una compra de otros servicios de AWS (`AWS`). | | `bill/bill_type` | El tipo de factura que cubre este informe (como `Purchase`). | | `bill/invoicing_entity` | La entidad de AWS que emite la factura. | -| `bill/payer_account_id` | El ID de la cuenta pagadora. Para una organización en AWS Organizations, este es el ID de la cuenta de gestión. | -| `is_aws_ec2_compute_savings_plan` | `true` para los elementos de línea que representan el uso de EC2 Compute, pagados mediante un Savings Plan. | -| `line_item/currency_code` | La moneda en la que se muestra este elemento de línea (`USD` por defecto). | +| `bill/payer_account_id` | El ID de cuenta de la cuenta pagadora. Para una organización en AWS Organizations, este es el ID de cuenta de la cuenta de administración. | +| `is_aws_ec2_compute_savings_plan` | `true` para partidas que representan el uso de EC2 Compute, pagado mediante un Savings Plan. | +| `line_item/currency_code` | La moneda en la que se muestra esta partida (`USD` de forma predeterminada). | | `line_item/legal_entity` | El proveedor de sus servicios de AWS. | -| `line_item/line_item_type` | El tipo de cargo cubierto por el elemento de línea (como `Credit`). | -| `line_item/operation` | La operación específica de AWS cubierta por el elemento de línea (como `RunInstances`). | +| `line_item/line_item_type` | El tipo de cargo que cubre la partida (como `Credit`). | +| `line_item/operation` | La operación específica de AWS que cubre la partida (como `RunInstances`). | | `line_item/product_code` | El código del producto medido (como `Amazon EC2` para Amazon Elastic Cloud Compute). | -| `line_item/resource_id` | El ID de recurso individual asociado con el elemento de línea (Opcional). | -| `line_item/tax_type` | El tipo de impuesto que AWS aplicó al elemento de línea. | -| `line_item/usage_account_id` | El ID de la cuenta que utilizó el elemento de línea. | -| `line_item/usage_type` | Los detalles de uso del elemento de línea (como `USW2-BoxUsage:m2.2xlarge`). | -| `pricing/lease_contract_length` | La duración por la cual se reserva el RI. | -| `pricing/purchase_option` | Cómo eligió pagar por la partida (como `All Upfront`). | +| `line_item/resource_id` | El ID de recurso individual asociado con la partida (opcional). | +| `line_item/tax_type` | El tipo de impuesto que AWS aplicó a la partida. | +| `line_item/usage_account_id` | El ID de la cuenta que utilizó la partida. | +| `line_item/usage_type` | Los detalles de uso de la partida (como `USW2-BoxUsage:m2.2xlarge`). | +| `pricing/lease_contract_length` | La cantidad de tiempo durante la cual se reserva la RI. | +| `pricing/purchase_option` | Cómo eligió pagar la partida (como `All Upfront`). | | `pricing/term` | Si su uso de AWS es `Reserved` o `On-Demand`. | -| `pricing/unit` | La unidad de precio que AWS utilizó para calcular el costo de uso (como `Hours`). | -| `reservation/availability_zone` | La Availability Zone del recurso asociado con el elemento de línea (como `us-east-1`). | -| `reservation/modification_status` | Indica si el contrato de RI fue modificado o no alterado (como `Manual`). | -| `reservation/reservation_arn` | El ARN del RI del cual se benefició la partida. | -| `reservation/subscription_id` | El ID único que mapea la partida con la oferta asociada. | +| `pricing/unit` | La unidad de precios que AWS utilizó para calcular el costo de uso (como `Hours`). | +| `reservation/availability_zone` | La zona de disponibilidad del recurso asociado con la partida (como `us-east-1`). | +| `reservation/modification_status` | Muestra si el arrendamiento de la RI se modificó o no se alteró (como `Manual`). | +| `reservation/reservation_arn` | El ARN de la RI de la que se benefició la partida. | +| `reservation/subscription_id` | El ID único que asigna la partida con la oferta asociada. | | `savings_plan/instance_type_family` | La familia de instancias que está asociada con el uso especificado (como `m4`). | -| `savings_plan/offering_type` | El tipo de Plan de Ahorros adquirido (como `ComputeSavingsPlans`). | -| `savings_plan/payment_option` | Las opciones de pago disponibles para el Plan de Ahorros (como `All Upfront`). | -| `savings_plan/purchase_term` | Describe la duración o término del Plan de Ahorros (como `1yr`). | -| `savings_plan/region` | La Región de AWS que alberga los servicios de AWS (como `US East (N. Virginia)`). | -| `savings_plan/savings_plan_arn` | El identificador único del Plan de Ahorros. | +| `savings_plan/offering_type` | El tipo de Savings Plan adquirido (como `ComputeSavingsPlans`). | +| `savings_plan/payment_option` | Las opciones de pago disponibles para el Savings Plan (como `All Upfront`). | +| `savings_plan/purchase_term` | Describe la duración o el plazo del Savings Plan (como `1yr`). | +| `savings_plan/region` | La región de AWS que aloja los servicios de AWS (como `US East (N. Virginia)`). | +| `savings_plan/savings_plan_arn` | El identificador único del Plan de ahorro. | #### Correlación de costos y observabilidad {#cost-and-observability-correlation} -Ver los costos en el contexto de los datos de observabilidad es importante para entender cómo los cambios en la infraestructura impactan los costos, identificar por qué cambian los costos y optimizar la infraestructura tanto para costos como para rendimiento. Datadog actualiza las etiquetas que identifican recursos en los datos de costos para los principales productos de AWS para simplificar la correlación entre métricas de observabilidad y costos. +Ver los costos en el contexto de los datos de observabilidad es importante para entender cómo los cambios en la infraestructura afectan los costos, identificar por qué cambian los costos y optimizar la infraestructura tanto para los costos como para el rendimiento. Datadog actualiza las etiquetas de identificación de recursos en los datos de costos para los principales productos de AWS a fin de simplificar la correlación de las métricas de observabilidad y costos. -Por ejemplo, para ver el costo y la utilización de cada base de datos RDS, puede crear una tabla con `aws.cost.amortized`, `aws.rds.cpuutilization` y `aws.rds.freeable_memory` (o cualquier otra métrica de RDS) y agrupar por `dbinstanceidentifier`. Para ver el uso y los costos de Lambda lado a lado, puede graficar `aws.lambda.concurrent_executions` y `aws.cost.amortized` agrupados por `functionname`. +Por ejemplo, para visualizar el costo y la utilización de cada base de datos RDS, puede crear una tabla con `aws.cost.amortized`, `aws.rds.cpuutilization` y `aws.rds.freeable_memory` (o cualquier otra métrica de RDS) y agrupar por `dbinstanceidentifier`. Para ver el uso y los costos de Lambda lado a lado, puede graficar `aws.lambda.concurrent_executions` y `aws.cost.amortized` agrupados por `functionname`. -Las siguientes etiquetas listas para usar están disponibles: +Las siguientes etiquetas predeterminadas están disponibles: | Producto de AWS | Etiqueta | | ---------------------------- | ----------------- | @@ -457,34 +515,34 @@ Las siguientes etiquetas listas para usar están disponibles: | ec2 natgateway | `natgatewayid`| | redshift | `clusteridentifier`| | kinesis | `streamname`| -| cola | `queuename`| +| queue | `queuename`| | sns | `topicname`| | elb (aplicación, gateway, red) | `loadbalancer`| -| elb (todos los demás costos) | `loadbalancername` | +| elb (el resto de los costos) | `loadbalancername` | ### Orquestadores de contenedores {#container-orchestrators} -La asignación de costos de contenedores agrega etiquetas de las cargas de trabajo que incurren en costos. Los ejemplos incluyen etiquetas de pods y nodos de Kubernetes, así como tareas y contenedores de ECS. +La asignación de costos de contenedores agrega etiquetas de las cargas de trabajo que incurren en costos. Los ejemplos incluyen etiquetas de pods y nodos de Kubernetes y tareas y contenedores de ECS. -_Requiere [asignación de costos de contenedores][11], y se aplica solo a `shared.resources.allocated` métricas._ +_Requiere [asignación de costos de contenedores][11] y se aplica solo a las métricas de `shared.resources.allocated`._ -### Canalizaciones de etiquetas {#tag-pipelines} +### Canalización de etiquetas {#tag-pipelines} -Finalmente, se aplican todas sus reglas de [canalización de etiquetas][15], proporcionando una asignación de costos completa cuando no es posible etiquetar la infraestructura. Las canalizaciones de etiquetas son la capa final de enriquecimiento y añaden nuevas etiquetas a sus datos de costos. +Finalmente, se aplican todos sus conjuntos de reglas de [canalización de etiquetas][15], lo que proporciona una asignación de costos completa cuando el etiquetado de infraestructura no es posible. Las canalizaciones de etiquetas son la capa de enriquecimiento final y agregan nuevas etiquetas a sus datos de costos. -## Conductor de facturación {#billing-conductor} -[Conductor de Facturación de AWS][16] es un servicio de facturación personalizado para socios de canal de AWS Marketplace y organizaciones que tienen requisitos de chargeback. -El Conductor de Facturación permite a los clientes crear una segunda versión pro forma de sus costos para compartir con sus clientes o propietarios de cuentas. -Las tarifas de facturación, créditos y cargos, y los costos generales pueden ser personalizados a su discreción. También puede seleccionar qué cuentas incluir en el CUR. +## Billing Conductor {#billing-conductor} +[AWS Billing Conductor][16] es un servicio de facturación personalizado para socios de canal de AWS Marketplace y organizaciones que tienen requisitos de contracargo. +Billing Conductor permite a los clientes crear una segunda versión pro forma de sus costos para compartirla con sus clientes o propietarios de cuentas. +Las tarifas de facturación, los créditos y cargos, y los costos generales se pueden personalizar a su discreción. También puede seleccionar qué cuentas incluir en el CUR. **Limitaciones importantes**: -- Los informes de costos y uso pro forma no incluyen descuentos ni impuestos, lo que dificulta la comparación de costos en Datadog con AWS Cost Explorer. -- Agregar cuentas a un grupo de facturación impacta cómo se comparten las Reservas y los Planes de Ahorro entre las cuentas de AWS. +- Los informes de costos y uso pro forma no incluyen descuentos ni impuestos, lo que dificulta comparar los costos en Datadog con AWS Cost Explorer. +- Agregar cuentas a un grupo de facturación afecta cómo se comparten las Reservations y los Savings Plans entre las cuentas de AWS. -Para crear un CUR de conductor de facturación, siga la [guía del usuario de informes de costos y uso de AWS][8]. Asegúrese de que el CUR cumpla con [los requisitos de Datadog][9]. -Después de que se crea el CUR del conductor de facturación, siga las instrucciones de Cloud Cost Management anteriores para configurarlo en Datadog. +Para crear un CUR de Billing Conductor, siga la [guía del usuario de AWS Cost and Usage Reports][8]. Asegúrese de que el CUR cumpla con los [requisitos de Datadog][9]. +Después de crear el CUR de Billing Conductor, siga las instrucciones de Cloud Cost Management anteriores para configurarlo en Datadog. -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://docs.aws.amazon.com/cur/latest/userguide/dataexports-create-legacy.html @@ -508,4 +566,8 @@ Después de que se crea el CUR del conductor de facturación, siga las instrucci [19]: /es/cloud_cost_management/tags [20]: https://docs.aws.amazon.com/cur/latest/userguide/troubleshooting.html#backfill-data [21]: /es/api/latest/cloud-cost-management/#create-cloud-cost-management-aws-cur-config -[22]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/aws_cur_config \ No newline at end of file +[22]: https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/aws_cur_config +[30]: /es/cloud_cost_management/recommendations/ +[31]: https://docs.aws.amazon.com/cost-management/latest/userguide/cost-optimization-hub.html +[32]: /es/integrations/amazon_web_services/ +[33]: https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html \ No newline at end of file diff --git a/hugo/content/es/data_security/data_retention_periods.md b/hugo/content/es/data_security/data_retention_periods.md index c7f7dde67ce..a5ed5b1baa2 100644 --- a/hugo/content/es/data_security/data_retention_periods.md +++ b/hugo/content/es/data_security/data_retention_periods.md @@ -8,17 +8,17 @@ aliases: attributes: - data_type: '- **Errores**: 15 días - - **Tramos indexados**: 15 o 30 días, determinado por el plan del cliente + - **Spans indexados**: 15 o 30 días, determinado por el plan del cliente - **Estadísticas de servicios/recursos**: 30 días - - **Trazas vistas**: Se conservan durante la duración de la cuenta + - **Trazas visualizadas**: Se conservan durante la duración de la cuenta ' product: APM - data_type: '- **Señales de seguridad**: 15 meses - - **Tramos**: 90 días + - **Spans**: 90 días ' product: App and API Protection @@ -49,7 +49,7 @@ attributes: - data_type: '- **Incidencias**: Se conservan durante la duración de la cuenta ' - product: Case Management + product: Work Management - data_type: '- **Implementaciones**: 30 días ' @@ -161,9 +161,7 @@ attributes: product: Agent Observability - data_type: '- **Registros**: Determinado por el plan del cliente - - **Registros de ejemplo de Sensitive Data Scanner**: 3 días7 días + - **Registros de ejemplo del Sensitive Data Scanner**: 7 días ' product: Log Management @@ -268,6 +266,6 @@ further_reading: title: Períodos de retención de datos type: data_retention_periods --- -### Lecturas Adicionales {#further-reading} +### Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/es/error_tracking/backend/exception_replay.md b/hugo/content/es/error_tracking/backend/exception_replay.md index 01d214b6409..f96af04b074 100644 --- a/hugo/content/es/error_tracking/backend/exception_replay.md +++ b/hugo/content/es/error_tracking/backend/exception_replay.md @@ -54,7 +54,7 @@ a continuación para obtener más detalles. |---|---|---|---| | **Cómo habilitar** | Habilitado de forma predeterminada | Página de configuración | Variables de entorno | | **Versión del Agent** | v7.49.0+ | v7.49.0+ | v7.49.0+ | -| **Versiones mínimas del rastreador** | [Python][8] ≥ 3.15.0
[Java][9] ≥ 1.54.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.19.0 | [Python][8] ≥ 3.10.0
[Java][9] ≥ 1.48.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.19.0 | [Python][8] ≥ 1.16.0
[Java][9] ≥ 1.47.0
[.NET][10] ≥ 2.53.0
[PHP][11] ≥ 1.12.1 | +| **Versiones mínimas del rastredor** | [Python][8] ≥ 3.15.0
[Java][9] ≥ 1.54.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.19.0 | [Python][8] ≥ 3.10.0
[Java][9] ≥ 1.48.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.14.0 | [Python][8] ≥ 1.16.0
[Java][9] ≥ 1.47.0
[.NET][10] ≥ 2.53.0
[PHP][11] ≥ 1.12.1 | | **¿Se requiere Remote Configuration?** | Sí | Sí | No | Para habilitar Exception Replay en la aplicación, navegue a la página de Exception Replay {{< ui >}}Settings{{< /ui >}} en Error Tracking, seleccione el @@ -108,8 +108,8 @@ entornos de preproducción como `staging` o `preprod`. ### Redacción basada en identificadores {#identifier-based-redaction} Los valores de las variables asociados con [identificadores confidenciales comunes][3] (por ejemplo, `password`, `accessToken` y términos similares) -se depuran antes de que las instantáneas salgan del servidor. Se integran reglas de depuración adicionales específicas del lenguaje en cada tracer -(por ejemplo, el tracer de Python mantiene una lista de identificadores confidenciales predeterminados). +se depuran antes de que las instantáneas salgan del servidor. Se integran reglas de depuración adicionales específicas del lenguaje en cada rastredor +(por ejemplo, el rastreador de Python mantiene una lista de identificadores confidenciales predeterminados). Puede ampliar el comportamiento de redacción mediante: @@ -140,14 +140,14 @@ entornos de ejecución, una instantánea solo se captura después de la **segund - Exclusiones de paquetes de terceros (use `DD_THIRD_PARTY_DETECTION_EXCLUDES` para incluirlos) - Registros con `source:dd_debugger` faltantes debido a la configuración de retención de [Log Index][6] o a los [Filtros de exclusión][7] en los índices anteriores - La reproducción de excepciones no está disponible en la región FedRAMP -- Java: En JDK 18 y versiones anteriores, es posible que no se admitan las clases compiladas con el flag `-parameters`. Spring 6+, Spring Boot 3+ y Scala usan este flag de forma predeterminada. +- Java: En JDK 18 y versiones anteriores, es posible que no se admitan las clases compiladas con el marcador `-parameters`. Spring 6+, Spring Boot 3+ y Scala usan este marcador de forma predeterminada. Utilice la consulta `@error.debug_info_captured:true` en Error Tracking Explorer para encontrar errores con Exception Replay instantáneas. ### Mensajes WARN de BatchUploader en GovCloud (Java) {#batchuploader-warn-messages-on-govcloud-java} -En sitios de GovCloud (`app.ddog-gov.com`), los tracers de Java pueden registrar mensajes WARN periódicos de `com.datadog.debugger.uploader.BatchUploader` con HTTP 403 y texto similar a `This traffic is not permitted on your account`. Esto es normal cuando se intentan realizar cargas relacionadas con el depurador en un sitio donde no se admiten Exception Replay, Dynamic Instrumentation y Code Origin for Spans. La funcionalidad principal de APM (trazas, métricas, perfiles, inyección de registros) no se ve afectada. +En sitios de GovCloud (`app.ddog-gov.com`), los rastreadores de Java pueden registrar mensajes WARN periódicos de `com.datadog.debugger.uploader.BatchUploader` con HTTP 403 y texto similar a `This traffic is not permitted on your account`. Esto es normal cuando se intentan realizar cargas relacionadas con el depurador en un sitio donde no se admiten Exception Replay, Dynamic Instrumentation y Code Origin para Spans. La funcionalidad principal de APM (trazas, métricas, perfiles, inyección de registros) no se ve afectada. Para detener estos mensajes de registro, establezca las siguientes variables de entorno en el pod de la aplicación Java y reinicie la carga de trabajo: @@ -165,7 +165,7 @@ Alternativamente, utilice las propiedades del sistema de la JVM: -Ddd.code.origin.for.spans.enabled=false ``` -Para confirmar la corrección, verifique el JSON de inicio del tracer (`DATADOG TRACER CONFIGURATION`) y compruebe que `debugger_exception_enabled`, `debugger_enabled` y `debugger_span_origin_enabled` sean todos `false`. Los mensajes WARN tienen una limitación de frecuencia de aproximadamente una vez cada cinco minutos, por lo que espere al menos ese tiempo después de reiniciar antes de confirmar que los mensajes se han detenido. +Para confirmar la corrección, verifique el JSON de inicio del rastreador (`DATADOG TRACER CONFIGURATION`) y compruebe que `debugger_exception_enabled`, `debugger_enabled` y `debugger_span_origin_enabled` sean todos `false`. Los mensajes WARN tienen una limitación de frecuencia de aproximadamente una vez cada cinco minutos, por lo que espere al menos ese tiempo después de reiniciar antes de confirmar que los mensajes se han detenido. ## Lecturas adicionales {#further-reading} diff --git a/hugo/content/es/feature_flags/client/android.md b/hugo/content/es/feature_flags/client/android.md new file mode 100644 index 00000000000..3b0f3050c7e --- /dev/null +++ b/hugo/content/es/feature_flags/client/android.md @@ -0,0 +1,593 @@ +--- +aliases: +- /es/feature_flags/setup/android/ +description: Configure Datadog Feature Flags para aplicaciones Android y Android TV + utilizando la API estándar de OpenFeature. +further_reading: +- link: /feature_flags/client/ + tag: Documentación + text: Feature Flags del lado del cliente +- link: https://openfeature.dev/docs/reference/technologies/client/kotlin/ + tag: Externo + text: SDK de OpenFeature para Kotlin +- link: /real_user_monitoring/android/ + tag: Documentación + text: Monitoreo de Android y Android TV +- link: /feature_flags/guide/proxy_sdk_traffic/ + tag: Guía + text: Proxy de tráfico del SDK de Feature Flag +title: Feature Flags para Android y Android TV +--- +## Descripción general {#overview} + +Esta página describe cómo instrumentar su aplicación Android o Android TV con el SDK de Feature Flags de Datadog. Las Feature Flags de Datadog proporcionan una forma unificada de controlar de forma remota la disponibilidad de funciones en su aplicación, experimentar de forma segura y ofrecer nuevas experiencias con confianza. + +El SDK de Feature Flags de Datadog para Android está construido sobre [OpenFeature][1], un estándar abierto para la gestión de Feature Flags. Esta guía explica cómo instalar el SDK, configurar el proveedor de Datadog y evaluar Feature Flags en su aplicación. + +
Para la mayoría de las aplicaciones, la API de OpenFeature es el enfoque recomendado. Si necesita múltiples contextos de evaluación independientes en la misma aplicación, consulte Integración directa de FlagsClient.
+ +## Primeros pasos {#getting-started} + +Aquí tiene un ejemplo mínimo para que las Feature Flags funcionen en su aplicación Android: + +```kotlin +// 1. Add dependencies (see Installation section) + +// 2. Initialize the Datadog Android SDK (in Application.onCreate) +val configuration = Configuration.Builder( + clientToken = "", + env = "", + variant = "" +) + .useSite(DatadogSite.{{< region-param key="dd_site_name" code="true" >}}) + .build() +Datadog.initialize(this, configuration, TrackingConsent.GRANTED) + +// 3. Enable Feature Flags +Flags.enable() + +// 4. Create and set up the OpenFeature provider +val provider = FlagsClient.Builder().build().asOpenFeatureProvider() +OpenFeatureAPI.setProviderAndWait(provider) + +// 5. Set evaluation context (who is the user) +OpenFeatureAPI.setEvaluationContext( + ImmutableContext( + targetingKey = "user-123", + attributes = mapOf("tier" to Value.String("premium")) + ) +) + +// 6. Evaluate flags anywhere in your app +val client = OpenFeatureAPI.getClient() +val isEnabled = client.getBooleanValue("my-feature", false) +``` + +El resto de esta guía explica cada paso en detalle. + +## Instalación {#installation} + +Agregue el SDK de Feature Flags de Datadog y el proveedor de OpenFeature como dependencias de Gradle en el archivo `build.gradle` de su módulo de aplicación: + +{{< code-block lang="groovy" filename="build.gradle" >}} +dependencies { + implementation "com.datadoghq:dd-sdk-android-flags:" + implementation "com.datadoghq:dd-sdk-android-flags-openfeature:" + + // Recommended: RUM integration drives analysis and enriches RUM session data + implementation "com.datadoghq:dd-sdk-android-rum:" +} +{{< /code-block >}} + +## Inicializar el SDK {#initialize-the-sdk} + +Inicialice Datadog lo antes posible en el ciclo de vida de su aplicación, normalmente en el método `onCreate()` de su clase `Application`. Esto ayuda a garantizar que todas las evaluaciones de Feature Flags y la telemetría se capturen correctamente. Para crear un token de cliente, consulte [Client tokens][2]. + +```kotlin +val configuration = Configuration.Builder( + clientToken = "", + env = "", + variant = "" +) + .useSite(DatadogSite.{{< region-param key="dd_site_name" code="true" >}}) + .build() + +Datadog.initialize(this, configuration, TrackingConsent.GRANTED) +``` + +## Habilite Feature Flags {#enable-flags} + +Después de inicializar Datadog, habilite `Flags` para adjuntarlo a la instancia actual del SDK de Android de Datadog y prepararse para la creación del proveedor y la evaluación de Feature Flags: + +{{< code-block lang="kotlin" >}} +import com.datadog.android.flags.Flags + +Flags.enable() +{{< /code-block >}} + +También puede pasar un objeto de configuración; consulte [Configuración avanzada](#advanced-configuration). + +## Crear y configurar el proveedor {#create-and-configure-the-provider} + +Cree un `FlagsClient` y conviértalo en un proveedor de OpenFeature utilizando la extensión `asOpenFeatureProvider()`. Haga esto una vez durante el inicio de la aplicación: + +{{< code-block lang="kotlin" >}} +import com.datadog.android.flags.FlagsClient +import com.datadog.android.flags.openfeature.asOpenFeatureProvider +import dev.openfeature.kotlin.sdk.OpenFeatureAPI + +// Create and configure the provider +val provider = FlagsClient.Builder().build().asOpenFeatureProvider() + +// Set it as the OpenFeature provider +OpenFeatureAPI.setProviderAndWait(provider) +{{< /code-block >}} + +
El proveedor de OpenFeature envuelve un Datadog FlagsClient internamente. Este es un detalle de implementación; una vez configurado, usted interactúa exclusivamente a través de la API estándar de OpenFeature.
+ +
El SDK de Kotlin de OpenFeature utiliza un único proveedor global y un contexto de evaluación. Si necesita múltiples contextos de evaluación independientes en la misma aplicación (por ejemplo, para diferentes usuarios en una aplicación multiusuario), consulte Integración directa de FlagsClient.
+ +## Establezca el contexto de evaluación {#set-the-evaluation-context} + +Defina a quién o a qué se aplica la evaluación de las Feature Flags mediante un `ImmutableContext`. El contexto de evaluación incluye información del usuario o de la sesión utilizada para determinar qué variaciones de las Feature Flags deben devolverse. Establezca esto antes de evaluar las Feature Flags para ayudar a garantizar una segmentación adecuada. + +
Datadog Feature Flags requiere que los atributos del contexto de evaluación sean valores primitivos planos: cadenas, números y booleanos. No pase objetos o arreglos anidados; no son compatibles y pueden causar que los datos de exposición se descarten.
+ +{{< code-block lang="kotlin" >}} +import dev.openfeature.kotlin.sdk.ImmutableContext +import dev.openfeature.kotlin.sdk.Value + +OpenFeatureAPI.setEvaluationContext( + ImmutableContext( + targetingKey = "user-123", + attributes = mapOf( + "email" to Value.String("user@example.com"), + "tier" to Value.String("premium") + ) + ) +) +{{< /code-block >}} + +
Los atributos de OpenFeature deben usar planos Value primitivos como Value.String(), Value.Integer(), Value.Double(), o Value.Boolean(). La clave de segmentación debe ser consistente para el mismo usuario para ayudar a garantizar una evaluación de Feature Flags consistente entre sesiones. Para usuarios anónimos, utilice un UUID persistente almacenado, por ejemplo, en SharedPreferences.
+ +## Evalúe marcadores {#evaluate-flags} + +Después de configurar su proveedor y contexto de evaluación, puede leer los valores de las Feature Flags en toda su aplicación. La evaluación de Feature Flags es _local e instantánea_: el SDK utiliza datos almacenados en caché localmente, por lo que no se producen solicitudes de red al evaluar Feature Flags. Esto hace que las evaluaciones sean seguras de realizar en el hilo principal. + +Cada Feature Flag se identifica mediante una _clave_ (una cadena única) y se puede evaluar con un método tipado que devuelve un valor del tipo esperado. Si el marcador no existe o no se puede evaluar, el SDK devuelve el valor predeterminado proporcionado. + +Primero, obtenga un cliente de OpenFeature: + +{{< code-block lang="kotlin" >}} +import dev.openfeature.kotlin.sdk.OpenFeatureAPI + +val client = OpenFeatureAPI.getClient() +{{< /code-block >}} + +### Marcadores booleanos {#boolean-flags} + +Los Feature Flags booleanos representan condiciones de encendido/apagado o verdadero/falso: + +{{< code-block lang="kotlin" >}} +val isNewCheckoutEnabled = client.getBooleanValue( + key = "checkout.new", + defaultValue = false +) + +if (isNewCheckoutEnabled) { + showNewCheckoutFlow() +} else { + showLegacyCheckout() +} +{{< /code-block >}} + +### Marcadores de cadena {#string-flags} + +Los Feature Flags de cadena seleccionan entre múltiples variantes o cadenas de configuración: + +{{< code-block lang="kotlin" >}} +val theme = client.getStringValue( + key = "ui.theme", + defaultValue = "light" +) + +when (theme) { + "light" -> setLightTheme() + "dark" -> setDarkTheme() + else -> setLightTheme() +} +{{< /code-block >}} + +### Los Feature Flags de enteros y dobles {#integer-and-double-flags} + +Los Feature Flags numéricos son apropiados cuando una funcionalidad depende de un parámetro numérico como un límite, porcentaje o multiplicador: + +{{< code-block lang="kotlin" >}} +val maxItems = client.getIntegerValue( + key = "cart.items.max", + defaultValue = 20 +) + +val priceMultiplier = client.getDoubleValue( + key = "pricing.multiplier", + defaultValue = 1.0 +) +{{< /code-block >}} + +### Feature Flags estructurados {#structured-flags} + +Los Feature Flags estructurados son útiles para escenarios de configuración remota donde se deben proporcionar múltiples propiedades juntas como datos tipo JSON: + +{{< code-block lang="kotlin" >}} +import dev.openfeature.kotlin.sdk.Value + +val config = client.getObjectValue( + key = "ui.config", + defaultValue = Value.Structure(mapOf( + "color" to Value.String("#00A3FF"), + "fontSize" to Value.Integer(14) + )) +) + +// Access nested values +val color = config.asStructure()?.get("color")?.asString() +val fontSize = config.asStructure()?.get("fontSize")?.asInteger() +{{< /code-block >}} + +### Detalles de evaluación de marcadores {#flag-evaluation-details} + +Cuando necesite más que el valor de la Feature Flag, puede obtener metadatos de evaluación detallados, incluyendo el valor evaluado, el nombre de la variante, el motivo y cualquier código de error: + +{{< code-block lang="kotlin" >}} +val details = client.getStringDetails( + key = "paywall.layout", + defaultValue = "control" +) + +print(details.value) // Evaluated value (for example: "A", "B", or "control") +print(details.variant) // Variant name, if applicable +print(details.reason) // Reason for this value (for example: "TARGETING_MATCH" or "DEFAULT") +print(details.errorCode) // Error code, if any +{{< /code-block >}} + +Existen métodos de detalle similares para otros tipos: `getBooleanDetails()`, `getIntegerDetails()`, `getDoubleDetails()` y `getObjectDetails()`. + +Los detalles del marcador le ayudan a depurar el comportamiento de evaluación y a entender por qué un usuario recibió un valor determinado. + +## Observar eventos del proveedor {#observe-provider-events} + +
La observación de eventos del proveedor está disponible en dd-sdk-android-flags-openfeature 3.6.0 y versiones posteriores. Use la misma versión para dd-sdk-android-flags.
+ +Use `OpenFeatureAPI.observe()` para reaccionar a los cambios de estado del proveedor. El proveedor de OpenFeature de Datadog emite `ProviderReady`, `ProviderStale` y `ProviderError` según el estado del `FlagsClient` subyacente. + +{{< code-block lang="kotlin" >}} +import dev.openfeature.kotlin.sdk.OpenFeatureAPI +import dev.openfeature.kotlin.sdk.events.OpenFeatureProviderEvents +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.launch + +val stateJob = lifecycleScope.launch { + OpenFeatureAPI.observe() + .catch { + // Handle Flow collection errors. + } + .collect { event -> + when (event) { + is OpenFeatureProviderEvents.ProviderReady -> { + // The provider is ready to evaluate flags. + } + is OpenFeatureProviderEvents.ProviderStale -> { + // Cached assignments are available, but they may be out of date. + } + is OpenFeatureProviderEvents.ProviderError -> { + // The provider cannot evaluate flags. + } + is OpenFeatureProviderEvents.ProviderConfigurationChanged -> { + // The provider configuration changed. + } + else -> { + // Handle other OpenFeature provider events as needed. + } + } + } +} +{{< /code-block >}} + +Cancele el trabajo de recolección cuando el componente de observación se detenga. Por ejemplo, recolecte desde `lifecycleScope` en un `Activity` o `Fragment` de Android, o desde `viewModelScope` en un `ViewModel`. + +## Configuración avanzada {#advanced-configuration} + +### Configuración global {#global-configuration} + +La API `Flags.enable()` acepta una configuración opcional con las opciones enumeradas a continuación. Estos ajustes se aplican globalmente a todos los proveedores: + +{{< code-block lang="kotlin" >}} +val config = FlagsConfiguration.Builder() + // configure options here + .build() + +Flags.enable(config) +{{< /code-block >}} + +`trackExposures()` +: Cuando `true` (predeterminado), el SDK registra automáticamente un _evento de exposición_ cuando se evalúa una Feature Flag. Estos eventos contienen metadatos sobre qué Feature Flag se accedió, qué variante se entregó y bajo qué contexto. Se envían a Datadog para que pueda analizar posteriormente la adopción de funcionalidades. Si solo necesita una evaluación local sin telemetría, puede desactivarla con: `trackExposures(false)`. + +`rumIntegrationEnabled()` +: Cuando `true` (predeterminado), las evaluaciones de Feature Flags se rastrean en RUM, lo que permite correlacionarlas con las sesiones de usuario. Esto permite análisis como _¿Los usuarios en la variante B experimentan más errores?_. Si su aplicación no usa RUM, esta Feature Flag no tiene efecto y puede dejarse de forma segura en su valor predeterminado. Use `rumIntegrationEnabled(false)` para desactivar la integración de RUM. + +`gracefulModeEnabled()` +: Controla cómo el SDK maneja el uso incorrecto de la API; por ejemplo, crear un cliente antes de llamar a `Flags.enable()`, crear un cliente duplicado con el mismo nombre o recuperar un cliente que aún no se ha creado. + + El comportamiento exacto del Modo tolerante a fallos depende de la configuración de compilación: + + * **Compilaciones de lanzamiento**: El SDK siempre aplica el Modo tolerante a fallos: cualquier uso incorrecto solo se registra internamente si `Datadog.setVerbosity()` está configurado. + * **Compilaciones de depuración** con `gracefulModeEnabled = true` (predeterminado): El SDK siempre registra advertencias en la consola. + * **Compilaciones de depuración** con `gracefulModeEnabled = false`: El SDK genera `IllegalStateException` por el uso incorrecto de la API, lo que aplica un enfoque de falla rápida que ayuda a detectar errores de configuración a tiempo. + + Puede ajustar `gracefulModeEnabled()` según su fase de desarrollo o control de calidad. + +### Configuración por proveedor {#per-provider-configuration} + +Puede configurar proveedores individuales con endpoints personalizados antes de crearlos: + +{{< code-block lang="kotlin" >}} +val provider = FlagsClient.Builder() + .useCustomFlagEndpoint("https://your-proxy.example.com/flags") + .useCustomExposureEndpoint("https://your-proxy.example.com/exposure") + .useCustomEvaluationEndpoint("https://your-proxy.example.com/evaluations") + .build() + .asOpenFeatureProvider() + +OpenFeatureAPI.setProviderAndWait(provider) +{{< /code-block >}} + +## Integración directa de FlagsClient (avanzado) {#direct-flagsclient-integration-advanced} + +Para la mayoría de las aplicaciones, la API de OpenFeature descrita anteriormente es el enfoque recomendado. Sin embargo, puede usar el `FlagsClient` de Datadog directamente si tiene requisitos específicos que la abstracción de OpenFeature no admite. + +**Utilice FlagsClient directamente solo si usted:** + +- Requiere **múltiples contextos de evaluación independientes** en la misma aplicación (por ejemplo, diferentes contextos para diferentes usuarios en una aplicación multiusuario) +- Quiere trabajar con **tipos nativos de Kotlin** directamente (`JSONObject` en lugar de `Value.Structure`) +- Necesita **control detallado** sobre el ciclo de vida del cliente y la configuración por instancia + +### Instalación (FlagsClient) {#installation-flagsclient} + +Si solo necesita la API directa, puede omitir la dependencia de OpenFeature: + +{{< code-block lang="groovy" filename="build.gradle" >}} +dependencies { + implementation "com.datadoghq:dd-sdk-android-flags:" + + // Recommended: RUM integration drives analysis and enriches RUM session data + implementation "com.datadoghq:dd-sdk-android-rum:" +} +{{< /code-block >}} + +### Cree y recupere un cliente (FlagsClient) {#create-and-retrieve-a-client-flagsclient} + +Cree un cliente una vez, normalmente durante el inicio de la aplicación: + +{{< code-block lang="kotlin" >}} +FlagsClient.Builder().build() // Creates the default client +{{< /code-block >}} + +Recupere el mismo cliente en cualquier parte de su aplicación: + +{{< code-block lang="kotlin" >}} +val flagsClient = FlagsClient.get() // Retrieves the "default" client +{{< /code-block >}} + +También puede crear y recuperar varios clientes proporcionando el parámetro `name`: + +{{< code-block lang="kotlin" >}} +FlagsClient.Builder("checkout").build() +val flagsClient = FlagsClient.get("checkout") +{{< /code-block >}} + +
Si ya existe un cliente con el nombre dado, se reutiliza la instancia existente.
+ +### Establezca el contexto de evaluación (FlagsClient) {#set-the-evaluation-context-flagsclient} + +{{< code-block lang="kotlin" >}} +flagsClient.setEvaluationContext( + EvaluationContext( + targetingKey = "user-123", + attributes = mapOf( + "email" to "user@example.com", + "tier" to "premium" + ) + ) +) +{{< /code-block >}} + +Este método obtiene las asignaciones de Feature Flags del servidor de forma asíncrona en segundo plano. La operación no es bloqueante y es segura para subprocesos. Las actualizaciones de Feature Flags están disponibles para evaluaciones posteriores una vez que se completa la operación en segundo plano. + +### Observe los cambios de estado del cliente directo {#observe-direct-client-state-changes} + +
La observación directa del estado del cliente con flagsClient.state está disponible en dd-sdk-android-flags 3.4.0 y versiones posteriores.
+ +Use `flagsClient.state` para verificar el estado actual del cliente directo o registrar un oyente para los cambios de estado: + +{{< code-block lang="kotlin" >}} +import com.datadog.android.flags.FlagsStateListener +import com.datadog.android.flags.model.FlagsClientState + +val listener = object : FlagsStateListener { + override fun onStateChanged(newState: FlagsClientState) { + when (newState) { + FlagsClientState.NotReady -> { + // The client has not loaded assignments yet. + } + FlagsClientState.Reconciling -> { + // The client is fetching assignments for a context change. + } + FlagsClientState.Ready -> { + // Assignments are loaded and available for evaluation. + } + FlagsClientState.Stale -> { + // Cached assignments are available, but the latest fetch failed. + } + is FlagsClientState.Error -> { + // No assignments are available for evaluation. + } + } + } +} + +flagsClient.state.addListener(listener) + +val currentState = flagsClient.state.getCurrentState() +{{< /code-block >}} + +El oyente recibe el estado actual cuando se registra y, posteriormente, recibe los cambios de estado futuros. Mantenga la devolución de llamada rápida y envíe el trabajo de larga duración a otro subproceso. Llame a `flagsClient.state.removeListener(listener)` cuando el componente de observación se detenga. + +### Evaluar Feature Flags (FlagsClient) {#evaluate-flags-flagsclient} + +{{% collapse-content title="Feature Flags booleanos" level="h4" %}} +{{< code-block lang="kotlin" >}} +val isNewCheckoutEnabled = flagsClient.resolveBooleanValue( + flagKey = "checkout.new", + defaultValue = false +) +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Feature Flags de cadena" level="h4" %}} +{{< code-block lang="kotlin" >}} +val theme = flagsClient.resolveStringValue( + flagKey = "ui.theme", + defaultValue = "light" +) +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Feature Flags de enteros y dobles" level="h4" %}} +{{< code-block lang="kotlin" >}} +val maxItems = flagsClient.resolveIntValue( + flagKey = "cart.items.max", + defaultValue = 20 +) + +val priceMultiplier = flagsClient.resolveDoubleValue( + flagKey = "pricing.multiplier", + defaultValue = 1.0 +) +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Feature Flags estructurados" level="h4" %}} +{{< code-block lang="kotlin" >}} +import org.json.JSONObject + +val config = flagsClient.resolveStructureValue( + flagKey = "ui.config", + defaultValue = JSONObject().apply { + put("color", "#00A3FF") + put("fontSize", 14) + } +) +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Detalles de evaluación de Feature Flags" level="h4" %}} +{{< code-block lang="kotlin" >}} +val details = flagsClient.resolve( + flagKey = "paywall.layout", + defaultValue = "control" +) + +print(details.value) // Evaluated value (for example: "A", "B", or "control") +print(details.variant) // Variant name, if applicable +print(details.reason) // Description of why this value was chosen +print(details.errorCode) // The error that occurred during evaluation, if any +{{< /code-block >}} +{{% /collapse-content %}} + +### Comparación de API {#api-comparison} + +Esta tabla destaca las diferencias clave entre las API de OpenFeature y `FlagsClient` para ayudarle a elegir la integración que se ajuste a sus requisitos. + +| Característica | **OpenFeature** | **FlagsClient** | +|---------|----------------|-----------------| +| **Estándar de API** | OpenFeature (neutral respecto al proveedor) | Específico de Datadog | +| **Contexto de evaluación** | Global/estático | Por instancia de cliente | +| **Flags estructurados** | `Value.Structure` | `JSONObject` | +| **Seguridad de tipos** | Tipos de `Value`OpenFeature | Tipos nativos de Kotlin | +| **Dependencia del proveedor** | Baja (neutral respecto al proveedor) | Más alta (específico de Datadog) | +| **Gestión de estado** | Observación basada en flujo | Registro manual de oyentes | + +## Pruebas {#testing} + +Puede realizar pruebas en un entorno de prueba de Datadog dedicado con el proveedor real de Datadog, o cambiarlo por un `FeatureProvider` en memoria para controlar los valores de flags directamente en el código de prueba. Esta sección muestra el enfoque en memoria, que mantiene las pruebas herméticas y sin conexión. El SDK de OpenFeature para Kotlin ascendente no incluye un [`InMemoryProvider`][3], por lo que las pruebas utilizan un pequeño `FeatureProvider` personalizado. El ejemplo a continuación reemplaza el proveedor de `OpenFeatureAPI`: si su código de producción utiliza directamente el wrapper `FlagsClient` de Datadog, su prueba debe hacer aserciones a través del mismo cliente `OpenFeatureAPI` que utiliza el wrapper, no `FlagsClient`. + +Agregue `kotlinx-coroutines-test` a su configuración de prueba (el `initialize` del SDK es una función `suspend`): + +{{< code-block lang="groovy" filename="build.gradle" >}} +dependencies { + testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1' +} +{{< /code-block >}} + +{{< code-block lang="kotlin" >}} +import dev.openfeature.kotlin.sdk.* +import dev.openfeature.kotlin.sdk.events.OpenFeatureProviderEvents +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import kotlin.test.assertTrue + +class FakeProvider(private val flags: Map) : FeatureProvider { + override val hooks = emptyList>() + override val metadata = object : ProviderMetadata { override val name = "fake" } + private val events = MutableSharedFlow(replay = 1) + + override suspend fun initialize(initialContext: EvaluationContext?) { + // No-op. The SDK emits ProviderReady after initialize returns. + } + override fun shutdown() {} + override suspend fun onContextSet(old: EvaluationContext?, new: EvaluationContext) {} + + override fun getBooleanEvaluation(key: String, defaultValue: Boolean, context: EvaluationContext?) = + ProviderEvaluation(value = (flags[key] as? Boolean) ?: defaultValue) + override fun getStringEvaluation(key: String, defaultValue: String, context: EvaluationContext?) = + ProviderEvaluation(value = (flags[key] as? String) ?: defaultValue) + override fun getIntegerEvaluation(key: String, defaultValue: Int, context: EvaluationContext?) = + ProviderEvaluation(value = (flags[key] as? Int) ?: defaultValue) + override fun getDoubleEvaluation(key: String, defaultValue: Double, context: EvaluationContext?) = + ProviderEvaluation(value = (flags[key] as? Double) ?: defaultValue) + override fun getObjectEvaluation(key: String, defaultValue: Value, context: EvaluationContext?) = + ProviderEvaluation(value = (flags[key] as? Value) ?: defaultValue) + + override fun observe(): Flow = events +} + +class CheckoutFlagsTest { + private lateinit var client: Client + + @Before + fun setUp() = runTest { + OpenFeatureAPI.setProviderAndWait( + FakeProvider(mapOf("new-checkout-flow" to true)) + ) + client = OpenFeatureAPI.getClient() + } + + @Test + fun newCheckoutEnabled() { + assertTrue(client.getBooleanValue("new-checkout-flow", false)) + } +} +{{< /code-block >}} + +`OpenFeatureAPI` es un singleton a nivel de proceso, así que reinícielo entre clases de prueba si las pruebas comparten una JVM. Envuelva `setProviderAndWait` en `runTest { ... }`; no se puede llamar desde un método `@Before` simple porque es `suspend`. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://openfeature.dev/ +[2]: /es/account_management/api-app-keys/#client-tokens +[3]: https://github.com/open-feature/kotlin-sdk/pull/226 \ No newline at end of file diff --git a/hugo/content/es/feature_flags/client/javascript.md b/hugo/content/es/feature_flags/client/javascript.md index bd9ec0a565f..f7abe1bc3e5 100644 --- a/hugo/content/es/feature_flags/client/javascript.md +++ b/hugo/content/es/feature_flags/client/javascript.md @@ -14,6 +14,9 @@ further_reading: - link: /feature_flags/browser_developer_extension/ tag: Documentación text: Extensión para desarrolladores de navegador +- link: /feature_flags/guide/proxy_sdk_traffic/ + tag: Guía + text: Tráfico del SDK de Feature Flag Proxy title: Feature Flags de JavaScript --- ## Descripción general {#overview} diff --git a/hugo/content/es/getting_started/dashboards/_index.md b/hugo/content/es/getting_started/dashboards/_index.md index 56dd9c72022..c74836463ec 100644 --- a/hugo/content/es/getting_started/dashboards/_index.md +++ b/hugo/content/es/getting_started/dashboards/_index.md @@ -1,143 +1,142 @@ --- -description: Aprende a crear dashboards eficaces para la monitorización de equipos, - la elaboración de informes ejecutivos y la resolución de problemas utilizando las - herramientas de visualización de Datadog. +description: Aprenda a crear dashboards efectivos para el seguimiento de equipos, + informes ejecutivos y resolución de problemas utilizando las herramientas de visualización + de Datadog. further_reading: - link: https://www.datadoghq.com/blog/dashboard-sharing/ - tag: Blog - text: Comparte dashboards de forma segura con cualquier persona que no pertenezca - a tu organización. + tag: blog + text: Comparta dashboards de forma segura con cualquier persona fuera de su organización - link: https://www.datadoghq.com/blog/template-variable-associated-values/ - tag: Blog - text: Usa variables de plantilla asociadas para redefinir tus dashboards + tag: blog + text: Utilice variables de plantilla asociadas para refinar sus dashboards - link: https://learn.datadoghq.com/courses/building-better-dashboards tag: Centro de aprendizaje - text: Building Better Dashboards (Cómo mejorar los dashboards) + text: Creación de mejores dashboards - link: /dashboards/ tag: Documentación - text: Aspectos básicos de los dashboards + text: Conceptos básicos de dashboards - link: /notebooks/ tag: Documentación - text: Cuenta algo sobre los datos con notebooks + text: Cuente una historia sobre los datos con notebooks - link: /monitors/ tag: Documentación - text: Monitores, SLOs, notificaciones, tiempos de inactividad e incidencias + text: Monitors, SLOs, notificaciones, tiempos de inactividad e incidentes - link: https://dtdg.co/fe - tag: Habilitación de los fundamentos - text: Participa en una sesión interactiva sobre las mejores visualizaciones con - dashboards -title: Empezando con los dashboards + tag: Foundation Enablement + text: Únase a una sesión interactiva sobre mejores visualizaciones con Dashboards +title: Primeros pasos con dashboards --- - -{{< learning-center-callout header="Únete a una sesión de webinar de Enablement" hide_image="true" btn_title="Inicio de sesión" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Dashboarding">}} - Explora y regístrate en las sesiones de Foundation Enablement. Aprende a personalizar tus dashboards mediante nuestra biblioteca de visualizaciones y el compilador de dashboard de arrastrar y soltar. Facilita el éxito de tu equipo al compartir datos con las partes interesadas a través de informes, URL públicas y notebooks. +{{< learning-center-callout header="Únase a una sesión de seminario web de habilitación" hide_image="true" btn_title="Registrarse" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Dashboarding">}} + Explore y regístrese en las sesiones de Foundation Enablement. Aprenda a personalizar sus dashboards utilizando nuestra biblioteca de visualizaciones y el Dashboard builder de arrastrar y soltar. Habilite el éxito de su equipo compartiendo datos con las partes interesadas a través de informes, URLs públicas y notebooks. {{< /learning-center-callout >}} -## Información general +## Descripción general {#overview} + +La clave para empezar con los dashboards es saber qué tipo de preguntas se hace regularmente. ¿Cuáles son los problemas comunes que enfrentan sus clientes? Cuando ocurre un problema, ¿qué preguntas le ayudan a encontrar una solución? -La clave para entender el funcionamiento de los dashboards es saber qué tipo de preguntas sueles hacerte. ¿Cuáles son los problemas más habituales a los que se enfrentan tus clientes? Cuando se produce algún problema, ¿qué preguntas te ayudan a encontrar una solución? +Crear un buen dashboard consiste en sacar a la superficie las respuestas a estas preguntas. Además, es importante no abarrotar todos esos pensamientos en el mismo dashboard. Crear dashboards separados para identificar diferentes problemas puede ayudarle a encontrar sus respuestas rápidamente. -Crear un buen dashboard pasa por responder a esas preguntas. Sin embargo, ten en cuenta que no debes incluir todo lo que se te ocurra en un mismo dashboard. Si creas dashboards independientes para tratar cada problema, te resultará más fácil encontrar rápidamente esas respuestas cuando las necesites. +Esta guía le ayuda a comenzar en el camino hacia la creación de dashboards. Estos dashboards básicos permiten la discusión en equipo y aceleran la resolución de problemas. -En esta guía, te indicamos los primeros pasos que debes dar para crear dashboards. Con estos dashboards básicos, podrás comunicarte con tu equipo y solucionar los problemas más rápido. +## Requisitos previos {#prerequisites} -## Requisitos previos +Si aún no lo ha hecho, cree una [cuenta de Datadog][1]. Instale el Agent en un servidor y una integración para algo que se ejecute en ese servidor. -Si aún no lo has hecho, crea una [cuenta de Datadog][1]. Instala el Agent en un host, además de una integración de algo que se ejecute en ese host. +## Plan {#plan} -## Plan +Determine el propósito del Dashboard que está creando. Un Dashboard puede ayudarle a usted y a sus compañeros de equipo a concentrarse en el trabajo correcto. Un _Dashboard de equipo_ le recuerda qué es de alta prioridad, qué necesita atención y en qué está teniendo éxito. Cree un Dashboard de equipo (o varios) con la información que las personas necesitan con mayor frecuencia y que tienen que buscar. Los detalles de SLO y SLI son excelentes para un Dashboard de equipo. -Antes de crear un dashboard, define bien su objetivo. Un dashboard puede servir para que tanto tú como tus compañeros de equipo sepáis hacia donde hay que dirigir la atención. Los _dashboards de equipo_ funcionan a modo de recordatorios, puesto que reflejan cuál es la máxima prioridad, a qué debemos prestar atención y qué estamos haciendo bien. Crea un dashboard de equipo (o varios) con la información que se suele necesitar. Normalmente, los mejores dashboards de equipo incluyen detalles relacionados con los SLOs y SLIs. +Un Dashboard conectado a datos en tiempo real es una herramienta poderosa para guiar las conversaciones con gerentes y ejecutivos. Un buen _Dashboard ejecutivo_ puede mostrar que usted está trabajando en las cosas más importantes, cuánto le está costando un servicio o si está progresando hacia sus objetivos, cumpliendo sus SLO y escalando de manera efectiva. Los Dashboards ejecutivos son más efectivos cuando responden a estas preguntas al nivel más alto y están interconectados para comparar y analizar la respuesta. -Un dashboard que disponga de datos en tiempo real es una herramienta de gran utilidad para guiar la comunicación con los responsables y el personal ejecutivo. Un buen _dashboard ejecutivo_ puede reflejar que te estás ocupando de lo más importante, el coste de un servicio o si estás progresando hacia la consecución de los objetivos, cumpliendo tus SLOs y escalando correctamente. Los dashboards ejecutivos son más efectivos cuando aportan las mejores respuestas posibles a estas cuestiones y cuando están interconectados para comparar y analizar las respuestas. +Los Dashboards también pueden ayudarle a localizar problemas persistentes y solucionarlos. _Los Dashboards de solución de problemas_ a menudo comienzan como un bloc de notas de cosas que usted conoce y se desarrollan gradualmente a medida que descubre más. Por ejemplo, comience con un gráfico o widget de otro Dashboard o vista que muestre un problema. Puede analizar más a fondo desde allí para encontrar su solución. -Los dashboards también pueden ayudarte a localizar y solucionar problemas persistentes. Los _dashboards para solucionar problemas_ suelen originarse a partir de notas sobre lo que ya sabes y van tomando forma poco a poco, a medida que descubres más cosas. Por poner un ejemplo, puedes empezar con un gráfico o widget de otro dashboard o vista que presente un problema. A partir de ahí, sigue analizando hasta encontrar una solución. +## Explore out-of-the-box Dashboards {#explore-out-of-the-box-dashboards} -## Explora los dashboards predefinidos +Datadog proporciona muchos out-of-the-box Dashboards para features e Integrations. Para la infraestructura que realiza seguimiento, consulte los out-of-the-box Dashboards que se proporcionan con Datadog: -Datadog ofrece un gran número de dashboards predefinidos para funciones e integraciones. Si necesitas alguno para la infraestructura que monitorizas, echa un vistazo a los que vienen de serie: +1. En Datadog, vaya a la [Dashboards List page][2] y busque el nombre de una integración que haya agregado. Por ejemplo, `Redis`, o un feature que utilice, como `RUM`. +2. Explore los resultados de búsqueda de Dashboards marcados como {{< ui >}}Preset{{< /ui >}} y vea si al menos algunos de los gráficos muestran las respuestas que busca. +3. Explore los enlaces en el menú desplegable del título del Dashboard out-of-the-box para encontrar más información sobre cómo los usuarios lo están utilizando. -1. En Datadog, ve a la [página Lista de dashboards][2] y busca el nombre de una integración que hayas añadido. Por ejemplo, `Redis`, o una función que utilices, como `RUM`. -2. Consulta los dashboards con la marca *Preset* (Predefinido) que aparezcan en los resultados de búsqueda y comprueba si hay algún gráfico que refleje las respuestas que necesitas. -3. Explora los enlaces del menú desplegable de títulos de dashboards predefinidos para obtener más información sobre cómo los utiliza la gente. +## Comience reutilizando otros Dashboards {#start-by-reusing-other-dashboards} -## Reutiliza primero otros dashboards +Una forma común de comenzar un Dashboard es encontrando un Dashboard similar que ya esté en uso y ajustándolo para que se adapte a sus necesidades. Si encuentra un Dashboard que responde a muchas de las preguntas que desea que su Dashboard responda: -Una forma habitual de iniciar un dashboard consiste en buscar un dashboard parecido que ya esté en uso y adaptarlo a nuestras necesidades. Si encuentras un dashboard que ya responda a gran parte de las preguntas que te planteas: +1. Clónelo abriendo el Dashboard y seleccionando {{< ui >}}Clone dashboard{{< /ui >}} en el menú Configuration Actions (el botón {{< ui >}}Configure{{< /ui >}} en el lado derecho). Esto crea una copia no vinculada del Dashboard; los cambios que realice en la nueva copia no afectan al widget de origen. + {{< img src="getting_started/dashboards/configure_clone_dashboard.png" alt="Opción Clone Dashboard en el menú Configuration Actions" style="width:100%;" >}} +2. Edite el clon abriéndolo y haciendo clic en {{< ui >}}Edit widgets{{< /ui >}}. +3. Elimine los widgets que no necesite seleccionando {{< ui >}}Delete{{< /ui >}} en el menú Settings del widget. +4. Mueva los elementos según sus necesidades. Los grupos y los widgets individuales se pueden arrastrar y soltar en nuevas ubicaciones dentro del Dashboard. +5. Copie los widgets que le gusten de otros Dashboards pasando el cursor sobre el widget y presionando `Command + C` (`Ctrl + C` en Windows). Péguelo en su Dashboard abriéndolo y presionando `Command + V` (`Ctrl + V` en Windows). +5. Utilice la opción {{< ui >}}Export to Dashboard{{< /ui >}} que ofrecen muchas visualizaciones de Datadog para los datos que muestran. Por ejemplo, las visualizaciones Explorador de registros y Analítica de registros tienen opciones para compartir que permiten exportar listas de registros y métricas a tableros. -1. Clónala abriendo el dashboard y seleccionando **Clonar dashboard** en el menú Acciones de configuración (el botón Configurar de la derecha). De este modo, se crea una copia no vinculada de dashboard. Los cambios que realices en la nueva copia no afectarán al widget de origen. - {{< img src="getting_started/dashboards/configure_clone_dashboard.png" alt="Opción clonar dashboard en el menú Acciones de configuración" style="width:100%;" >}} -2. Abre el clon y haz clic en **Edit widgets** (Editar widgets) para hacer cambios. -3. Selecciona **Delete** (Eliminar) en el menú de configuración del widget para eliminar los widgets que no necesites. -4. Reorganiza la información en función de tus necesidades. Los widgets individuales y los grupos se pueden arrastrar hacia otras localizaciones del dashboard. -5. Puedes copiar los widgets que te gusten de otros dashboards. Para ello, solo tienes que colocar el cursor sobre el widget y teclear `Command + C` (`Ctrl + C` en Windows). Luego, abre el dashboard y teclea `Command + V` (`Ctrl + V` en Windows) para pegarlo. -5. Utiliza la opción **Export to Dashboard** (Exportar al dashboard) que ofrecen muchas vistas de Datadog para los datos que muestran. Por ejemplo, las vistas del Log Explorer y Log Analytics tienen opciones compartidas para exportar listas y métricas de logs a dashboards. +## Obtenga más información sobre las métricas {#learn-more-about-metrics} -## Obtén más información sobre las métricas +A través de las integraciones, Datadog recopila [metrics][3] de su infraestructura y aplicaciones. Las métricas recopiladas están documentadas en los archivos README de la integración. Si encuentra una métrica en el [Metrics Explorer][4] o mientras crea un Dashboard, y desea saber qué es la métrica, búsquela en la documentación de Integrations. -A través de integraciones, Datadog recopila [métricas][3] de tu infraestructura y aplicaciones. Las métricas recopiladas se registran en los archivos README de la integración. Si encuentras una métrica en el [Metrics Explorer][4] o mientras creas un dashboard y quieres saber qué es la métrica, búscala en los documentos de integraciones. +Por ejemplo, suponga que está viendo un gráfico de tiempo de la métrica `aws.s3.first_byte_latency`. Vaya a la sección [Data collected][5] del archivo README de la integración de Amazon S3 para ver su descripción: `The average per-request time from the complete request being received by a bucket to when the response starts to be returned. Shown as millisecond.` -Por ejemplo, supongamos que estás viendo un gráfico temporal de la métrica `aws.s3.first_byte_latency`. Ve a la sección [Datos recopilados][5] del archivo README de la integración de Amazon S3 para ver su descripción: `The average per-request time from the complete request being received by a bucket to when the response starts to be returned. Shown as millisecond.` +## Agregue widgets y refine lo que muestran {#add-widgets-and-refine-what-they-show} -## Añadir widgets y redefinir lo que muestran +Después de haber seleccionado algunas métricas para agregar a su Dashboard, experimente con varios [tipos de widgets][6], [consultas][7], [funciones][8] y [enfoques de agregación][9], para mostrar los datos de las formas que mejor respondan a las preguntas que tenga. -Una vez que hayas seleccionado algunas métricas para añadirlas a tu dashboard, experimenta con varios [tipos de widget][6], [consultas][7], [funciones][8] y [enfoques de agregación][9] para mostrar los datos de la forma que mejor responda a las preguntas que tengas. +Al especificar variables de plantilla, puede hacer que un Dashboard responda preguntas para una selección de escenarios. Por ejemplo, puede crear un gráfico de tiempo que muestre métricas de latencia para la geografía del centro de datos que el usuario seleccione en el menú desplegable de variables del Dashboard, o para todos ellos juntos. Para obtener más información, consulte [Template Variables][10]. -Al especificar variables de plantilla, puedes hacer que un dashboard responda a preguntas para una selección de escenarios. Por ejemplo, puedes crear un gráfico de tiempo que muestre las métricas de latencia para cualquier geografía del centro de datos que el usuario seleccione en el menú desplegable de variables del dashboard, o para todas ellas juntas. Para más información, consulta [Variables de plantilla][10]. +Puede hacer que los gráficos sean más fáciles de leer ajustando los rangos del eje Y, los colores o las leyendas, o agregando marcadores y superposiciones de eventos. Consulte la [Dashboards documentation][11] para conocer todas las formas en que puede personalizar y refinar [series temporales][12] y [otros widgets][6]. -Puedes facilitar la lectura de los gráficos ajustando los rangos del eje Y, los colores o las leyendas, o bien añadiendo marcadores y superposiciones de eventos. Consulta la [documentación sobre los dashboards][11] para descubrir todas las formas en las que puedes personalizar y reajustar las [cronologías][12] y [demás widgets][6]. +Para obtener más detalles y ejemplos de estas técnicas, inscríbase en el curso de aprendizaje en línea [Building Better Dashboards][13]. -Para más información y ejemplos acerca de estas técnicas, inscríbete en el curso de aprendizaje en línea [Building Better Dashboards (Cómo mejorar los dashboards)][13]. +## Pruebe otros widgets {#try-out-other-widgets} -## Prueba otros widgets +Los gráficos de series temporales de métricas son útiles, pero los paneles pueden contener muchos tipos de widgets para comunicar información importante. Pruebe: -Los gráficos cronológicos de métricas son muy útiles, pero los dashboards pueden contener muchos tipos de widgets para aportar información importante. Prueba estos: + - **Valores de alerta y estados de verificación**: Muestre números grandes en rojo, amarillo y verde para llamar la atención sobre éxitos o problemas. + - **Mapas de calor**: Muestre relaciones complejas entre métricas e infraestructura a través de múltiples etiquetas con gráficos intuitivos de intensidad de color. + {{< img src="getting_started/dashboards/heatmap_widget.png" alt="Ejemplo de mapa de calor" >}} + - **iFrames, texto con formato e imágenes**: Muestre cualquier cantidad de detalles similares a los de un sitio web para ayudar a explicar el contenido del Dashboard y proporcionar recursos adicionales. + - **Tablas**: Muestre listas de métricas agrupadas por claves de etiqueta. + - **Top lists**: Por ejemplo, muestre qué servidores tienen menos espacio libre, qué servicios arrojan la mayor cantidad de errores o qué URL devuelven la mayor cantidad de errores 404. + - **Mapa de servidores**: Muestre un diagrama de, por ejemplo, los servidores en su infraestructura con colores que muestren el estado de sus integraciones o servicios. + - **Service Level Objectives (SLO)**: Muestre el desempeño del equipo frente a los objetivos con un widget de SLO y agrúpelo con widgets adicionales que muestren detalles de las métricas de SLI. + - **Distribuciones**: Muestre, por ejemplo, un histograma del número de diferentes tipos de eventos en un entorno contenedorizado, el número de errores críticos en cada servicio, el flujo del sitio web (número de usuarios que llegan a la página 2, página 3, página 4) o los cubos de percentiles de latencia. - - **Valores de alerta y estados de check**: resalta con números grandes de color rojo, amarillo y verde los buenos resultados o los problemas. - - **Mapas de actividad**: refleja la compleja relación métrica-infraestructura de varias etiquetas (tags) mediante gráficos intuitivos que representan la intensidad con colores. - {{< img src="getting_started/dashboards/heatmap_widget.png" alt="Ejemplo de mapa de actividad" >}} - - **Iframes, texto con formato e imágenes**: refleja un número indeterminado de detalles propios de un sitio web para explicar mejor el contenido del dashboard y proporcionar recursos adicionales. - - **Tablas**: refleja listas de métricas agrupadas por claves de etiqueta. - - **Listas principales**: refleja, por ejemplo, los hosts con menos espacio disponible, los servicios que generan más errores o las URL que presentan más errores 404. - - **Mapa del host**: refleja un diagrama en el que se ven, por ejemplo, los hosts de tu infraestructura con colores que representan el estado de sus integraciones o servicios. - - **Objetivos de nivel de servicio (SLOs)**: refleja el rendimiento del equipo respecto a sus objetivos con un widget de SLOs; además, agrupa los widgets adicionales que aportan detalles relacionados con las métricas de SLIs. - - **Distribuciones**: refleja, por ejemplo, un histograma con los diferentes tipos de eventos que ocurren en un entorno contenedorizado, el número de errores críticos que hay en cada servicio, el flujo del sitio web (número de usuarios que llegan a la página 2, la página 3, la página 4, etc.) o los buckets con los percentiles de latencia. +Consulte [Widgets][6] para obtener más información y ejemplos sobre cómo configurar estos gráficos. -Consulta [widgets][6] para obtener más información y ejemplos de configuración de estos gráficos. +## Organice, vincule y analice {#organize-link-and-analyze} -## Organiza, vincula y analiza +Mueva los gráficos para que creen un flujo para el trabajo que realiza o las conversaciones que tiene sobre el Dashboard. Arrastre y suelte los widgets para colocarlos. En screenboards, use Free Text widgets para organizar secciones bajo encabezados. En timeboards, agregue un Group widget que pueda contener múltiples widgets y que pueda colapsarse para que no estorbe cuando esté viendo el Dashboard. -Mueve los gráficos de un lado a otro para crear un flujo en tu trabajo o en las conversaciones que tienes dentro el dashboard. Arrastra y suelta los widgets para colocarlos donde quieras. En los screenboards, usa widgets de texto libre para organizar las secciones debajo de los encabezados. En los timeboards, añade un widget de grupo que pueda contener varios widgets y contraerse a medida que consultas el dashboard. +Para los Dashboards que crecen mucho, use pestañas para organizar los widgets en secciones con nombre. Haga clic en {{< ui >}}\+{{< /ui >}} en la barra de pestañas (o {{< ui >}}Add New Tab{{< /ui >}} en el menú desplegable junto a {{< ui >}}Add Widgets{{< /ui >}}) para agregar una pestaña, luego mueva los widgets entre pestañas desde el menú de compartir (⋮) de cada widget. El uso de pestañas mantiene un único Dashboard enfocado y fácil de navegar sin requerir que los espectadores se desplacen por contenido no relacionado. Para obtener más información, consulte [Pestañas][20]. -Existen dos formas de crear enlaces que vinculen un dashboard con una URL de destino: +Existen dos formas de crear enlaces desde un Dashboard a cualquier URL de destino: - - Añade un widget de notas y enlaces que admita texto en formato Markdown, como los enlaces. El editor del widget te dará consejos acerca de cómo utilizar el formato Markdown. - - Crea un enlace personalizado desde el menú de configuración (rueda dentada) de un widget. Los enlaces personalizados pueden interpolar variables y variables de plantilla para que el enlace cambie en función de lo que haya seleccionado el usuario. De este modo, cuando el usuario haga clic, irá directamente al lugar exacto en el que hay que analizar los datos o aplicar acciones correctivas. - {{< img src="getting_started/dashboards/opening_custom_link.mp4" alt="Cómo abrir un enlace personalizado" video=true >}} + - Agregue un Notes and Links widget, que puede contener texto con formato Markdown, incluidos enlaces. El editor de widgets incluye consejos de formato Markdown. + - Cree un Custom link desde el menú de Settings (engranaje) de un widget. Los Custom links pueden interpolar variables y variables de plantilla, de modo que el enlace cambie según lo que el usuario haya seleccionado al hacer clic, llevándolo exactamente al lugar correcto para analizar datos o tomar medidas correctivas. + {{< img src="getting_started/dashboards/opening_custom_link.mp4" alt="Abrir un Custom link" video=true >}} -## Próximos pasos +## ¿Qué sigue? {#whats-next} -### Comparte tus dashboards fuera del sitio de Datadog +### Comparta sus Dashboards fuera del sitio de Datadog {#share-your-dashboards-outside-of-the-datadog-site} -Haz clic en **Configure Public URL** (Configurar URL pública) en el menú de exportación de un dashboard para crear una URL que puedas compartir con pantallas grandes o con personas que no tengan necesariamente una cuenta de Datadog. Para más información, consulta [Compartir dashboards][14]. +Haga clic en {{< ui >}}Configure Public URL{{< /ui >}} en el menú de exportación de un Dashboard para crear una URL que pueda compartir con pantallas grandes o personas que no necesariamente tengan una cuenta de Datadog. Para obtener más información, consulte [Compartir Dashboards][14]. -Integra las comunicaciones de tu equipo mediante la [integración de Slack][15] para importar dashboards y otras funciones de Datadog, como monitores e incidencias, a un canal de Slack. +Intégrese con las comunicaciones de su equipo usando la [Slack integration][15] para importar Dashboards y otras funciones de Datadog, como monitores e incidentes, a un canal de Slack. -### Crea varios dashboards con rapidez +### Cree múltiples Dashboards rápidamente {#create-multiple-dashboards-quickly} -Todos los dashboards tienen una representación JSON que puedes copiar o exportar desde el menú de configuración. Los widgets del dashboard también tienen una definición JSON; para editarla, abre el editor del widget (icono del lápiz) y haz clic en la pestaña JSON de **Graph your data** (Tus datos en un gráfico). +Cada Dashboard tiene una representación JSON que puede copiar o exportar desde el menú de Settings. Cada widget en el Dashboard también tiene una definición JSON, la cual puede ver y editar abriendo el widget editor (icono de lápiz) y haciendo clic en la pestaña JSON debajo de {{< ui >}}Graph your data{{< /ui >}}. -Dado que todos los widgets y dashboards se representan como JSON, puedes generarlos mediante programación utilizando la [API de dashboards][16], lo que resulta útil si deseas generar un dashboard cada vez que tu equipo inicie un nuevo proyecto o se encuentre con una incidencia, o formalice un SLO, por ejemplo. +Debido a que todos los widgets y Dashboards están representados como JSON, puede generarlos programáticamente usando la [Dashboards API][16], lo cual es útil si desea generar un Dashboard cada vez que su equipo comienza un nuevo proyecto o se enfrenta a un incidente, o formaliza un SLO, por ejemplo. -### Consulta los dashboards desde la aplicación móvil de Datadog +### Vea Dashboards desde la aplicación móvil de Datadog {#view-dashboards-from-the-datadog-mobile-app} -Consulta tus dashboards en un dispositivo móvil con la [Datadog Mobile App][17], disponible en [Apple App Store][18] y [Google Play Store][19]. +Vea sus Dashboards en su dispositivo móvil con la [aplicación móvil de Datadog][17], disponible en la [Apple App Store][18] y [Google Play Store][19]. -La aplicación móvil te permite ver y buscar todos los dashboards a los que tienes acceso en tu organización de Datadog. Además, puedes filtrarlos usando las mismas variables de plantilla que en la aplicación web de Datadog. +La aplicación móvil le permite ver y buscar todos los Dashboards a los que tiene acceso en su organización de Datadog, y filtrarlos usando las mismas variables de plantilla utilizadas en el Datadog web app. {{< img src="dashboards/dashboards-list-mobile.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Dashboards en iOS y Android">}} -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -159,4 +158,5 @@ La aplicación móvil te permite ver y buscar todos los dashboards a los que tie [16]: /es/api/v1/dashboards/ [17]: /es/mobile/ [18]: https://apps.apple.com/app/datadog/id1391380318 -[19]: https://play.google.com/store/apps/details?id=com.datadog.app \ No newline at end of file +[19]: https://play.google.com/store/apps/details?id=com.datadog.app +[20]: /es/dashboards/configure/#tabs \ No newline at end of file diff --git a/hugo/content/es/getting_started/synthetics/api_test.md b/hugo/content/es/getting_started/synthetics/api_test.md index 0ce7db7bc78..83cd3b51349 100644 --- a/hugo/content/es/getting_started/synthetics/api_test.md +++ b/hugo/content/es/getting_started/synthetics/api_test.md @@ -1,183 +1,202 @@ --- -description: Crea tests de API en Datadog para monitorizar tus endpoints de forma - proactiva. Crea tests de API de uno o varios pasos con aserciones, configura alertas - y soluciona problemas. +description: Cree pruebas de Datadog API para hacer un seguimiento proactivo de sus + puntos de conexión. Cree pruebas de API individuales y pruebas de API en varios + pasos con aserciones, configure alertas y solucione problemas. further_reading: - link: /api/latest/synthetics/#create-an-api-test tag: API - text: Crear un test de API mediante programación + text: Cree una prueba de API mediante programación. - link: /synthetics/api_tests tag: Documentación - text: Más información sobre los tests de API únicos + text: Más información sobre las pruebas de API individuales - link: /getting_started/synthetics/private_location tag: Documentación - text: Más información sobre las localizaciones privadas + text: Más información sobre ubicaciones privadas - link: /continuous_testing/cicd_integrations/ tag: Documentación - text: Descubre cómo activar los tests Synthetic desde tu pipeline de integración/distribución - continuas (CI/CD) + text: Aprenda a activar pruebas Synthetic desde su canalización de CI/CD - link: /synthetics/guide/identify_synthetics_bots tag: Documentación - text: Descubre cómo identificar los bots Synthetic de los tests de API + text: Aprenda a identificar bots Synthetic para pruebas de API. - link: /synthetics/guide/synthetic-test-monitors tag: Documentación - text: Más información sobre los monitores de test Synthetic -title: Empezando con los tests de API + text: Obtenga información sobre los monitores de prueba Synthetic +- link: /synthetics/guide/export-tests-to-terraform + tag: Guía + text: Exportar pruebas Synthetic a Terraform +title: Introducción a las pruebas de API --- +## Descripción general {#overview} -## Información general +Las pruebas de API **hacen un seguimiento proactivo** de que sus **servicios más importantes** estén disponibles en cualquier momento y desde cualquier lugar. Las [pruebas de API individuales][1] vienen en ocho subtipos que le permiten lanzar solicitudes en las diferentes capas de red de sus sistemas (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP` y `gRPC`). Las [pruebas de API en varios pasos][2] le permiten ejecutar pruebas de API en secuencia para hacer un seguimiento del tiempo de actividad de los recorridos clave a nivel de API. -Los tests de API **monitorizan proactivamente** tus **servicios más importantes** para que estén disponibles en cualquier momento y desde cualquier lugar. Los [tests de API únicos][1] vienen en ocho subtipos que te permiten iniciar solicitudes en las diferentes capas de red de tus sistemas (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP` y `gRPC`). Los [tests de API multipaso][2] te permiten ejecutar tests de API en secuencia para monitorizar el tiempo de actividad de los recorridos clave a nivel de API. +## Cree una prueba de API individual {#create-a-single-api-test} -## Crear un test de API único +Las pruebas HTTP hacen un seguimiento de los puntos de conexión de API y le alertan cuando la latencia de respuesta es alta o no cumple con las condiciones que usted defina, como el código de estado HTTP esperado, los encabezados de respuesta o el contenido del cuerpo de la respuesta. -Los tests HTTP monitorizan los endpoints de tu API, y te avisan cuando la latencia de la respuesta es alta o cuando no cumple con alguna de las condiciones que hayas definido, tales como el código de estado HTTP previsto, los encabezados de respuesta o el contenido del cuerpo de la respuesta. +Los ejemplos a continuación demuestran cómo crear una [prueba HTTP][3], un subtipo de [pruebas de API individuales][1]. -Los siguientes ejemplos muestran cómo crear un [test HTTP][3], un subtipo de [tests de API única][1]. +1. En el sitio de Datadog, pase el cursor sobre {{< ui >}}Digital Experience{{< /ui >}} y seleccione [{{< ui >}}Tests{{< /ui >}}][4] (bajo {{< ui >}}Synthetic Monitoring & Testing{{< /ui >}}). -1. En el sitio Datadog, pasa el ratón por encima de **Experiencia digital** y selecciona **[Tests][4]** (en **Monitorización y tests Synthetic**). +2. Haga clic en {{< ui >}}New Test{{< /ui >}} > [{{< ui >}}New API test{{< /ui >}}][5]. -2. Haz clic en **New Testt** (Nuevo test) > **[New API test][5]** (Nuevo test de API). +3. Puede crear una prueba utilizando una de las siguientes opciones: -3. Puedes crear un test utilizando una de las siguientes opciones: + - **Cree una prueba a partir de una plantilla**: - - **Crea un test a partir de una plantilla**: + 1. Pase el cursor sobre una de las plantillas precargadas y haga clic en {{< ui >}}View Template{{< /ui >}}. Esto abre un panel lateral que muestra información de configuración precargada, incluyendo: Detalles de la prueba, Detalles de la solicitud, Aserciones, Condiciones de alerta y Configuración del monitor. + 2. Haga clic en {{< ui >}}+Create Test{{< /ui >}} para abrir la página {{< ui >}}Define Request{{< /ui >}}, donde puede revisar y editar las opciones de configuración prellenadas. Los campos presentados son idénticos a los disponibles al crear una prueba desde cero. + 3. Haga clic en {{< ui >}}Save Details{{< /ui >}} para enviar su prueba de API.

- 1. Pasa el ratón por encima de una de las plantillas ya rellenadas y haz clic en **View Template** (Ver plantilla). Se abrirá un panel lateral en el que se mostrará la información de configuración rellenada previamente, que incluye: detalles de tests, detalles de solicitudes, aserciones, condiciones de alerta y parámetros de monitor. - 2. Haz clic en **+Create Test** (+Crear test) para abrir la página **Definir solicitud**, en la que podrás revisar y editar las opciones de configuración rellenadas previamente. Los campos presentados son idénticos a aquellos disponibles cuando se crea un test desde cero. - 3. Haz clic en **Save Details** (Guardar detalles) para enviar tu test de API.

+ {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video de la página de inicio de la prueba de API de Synthetics con plantillas" video="true" >}} - {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Vídeo de la página de inicio del test de la API de Synthetic" video="true" >}} + - **Cree una prueba desde cero**: - - **Crea un test desde cero**: + 1. Para crear una prueba desde cero, haga clic en la plantilla {{< ui >}}+ Start from scratch{{< /ui >}}, luego seleccione el tipo de solicitud `HTTP`. - 1. Para crear un test desde cero, haz clic en la plantilla **+ Start from scratch** (+ Empezar desde cero) y selecciona el tipo de solicitud `HTTP`. + 2. Agregue la URL del punto de conexión que desea hacer un seguimiento. Si no sabe por dónde empezar, puede usar `https://www.shopist.io/`, una aplicación web de comercio electrónico de prueba. Si usa la URL de prueba de Shopist, el nombre de su prueba se completa automáticamente como `Test on shopist.io`. - 2. Añade la URL del endpoint que quieres monitorizar. Si no sabes con qué empezar, puedes utilizar `https://www.shopist.io/`, una aplicación web de comercio electrónico de tests. Si utilizas la URL Shopist de test, el nombre de tu test se rellena automáticamente como `Test on shopist.io`. + 3. Opcionalmente, seleccione {{< ui >}}Advanced Options{{< /ui >}} para establecer opciones de solicitud personalizadas, agregar certificados y credenciales de autenticación, y crear [variables globales][6] o [variables locales][7] seguras para entradas dinámicas. - 3. Opcionalmente, selecciona **Opciones avanzadas** para configurar opciones de solicitud personalizadas, certificados, credenciales de autenticación y crear [variables globales][6] or [variables locales][7] seguras para entradas dinámicas. + **Nota**: Escriba `{{` en cualquier campo relevante para seleccionar una variable e insertar su valor en las opciones de su prueba. + + 4. Optionally, set tags such as `env:prod` and `app:shopist` on your test. Tags allow you to keep your test suite organized and quickly find tests you're interested in on the homepage. - **Nota**: Escribe `{{` en cualquier campo relevante para seleccionar una variable e inyectar su valor en tus opciones de test. + 5. Click {{< ui >}}Send{{< /ui >}} to trigger a sample test run. - 4. Opcionalmente, puedes configurar etiquetas (tags) como `env:prod` y `app:shopist` en tu test. Las etiquetas te permiten mantener tu conjunto de tests organizado y encontrar rápidamente los tests que te interesan en la página de inicio. + {{< img src="getting_started/synthetics/api-test-config-4.png" alt="Configuración de prueba de API" style="width:90%;">}} - 5. Haz clic en **Send** (Enviar) para activar un test de ejemplo. + 6. Click {{< ui >}}Create Test{{< /ui >}} to submit your API test. - {{< img src="getting_started/synthetics/api-test-config-4.png" alt="Configuración de test de API" style="width:90%;">}} +### Defina aserciones {#define-assertions} - 6. Haz clic en **Create Test** (Crear test) para enviar tu test de API. +Hacer clic en {{< ui >}}Send{{< /ui >}} completa automáticamente las aserciones básicas sobre la respuesta de su punto de conexión. Las aserciones definen qué constituye una ejecución de prueba exitosa. -### Definición de aserciones - -Al hacer clic en **Send** (Enviar), se rellenan automáticamente las aserciones básicas sobre la respuesta de tu endpoint. Las aserciones definen qué es una ejecución de test satisfactoria. - -En este ejemplo, se rellenan tres aserciones predeterminadas después de activar la ejecución del test de prueba: +En este ejemplo, tres aserciones predeterminadas se completan después de activar la ejecución de prueba de muestra: {{< img src="getting_started/synthetics/assertions-example-2.png" alt="Aserciones predeterminadas" style="width:100%;">}} -Las aserciones son totalmente personalizables. Para añadir una aserción personalizada, haz clic en los elementos de la vista previa de la respuesta, como los encabezados, o haz clic en **New Assertion** (Nueva aserción) para definir una nueva aserción desde cero. +Las aserciones son totalmente personalizables. Para agregar una aserción personalizada, haga clic en los elementos de la vista previa de la respuesta, como los encabezados, o haga clic en {{< ui >}}New Assertion{{< /ui >}} para definir una nueva aserción desde cero. -{{< img src="getting_started/synthetics/api-test-configuration-2.mp4" alt="Ejemplo de configuración de test de API" video="true" >}} +{{< img src="getting_started/synthetics/api-test-configuration-2.mp4" alt="Ejemplo de configuración de prueba de API" video="true" >}} -### Seleccionar localizaciones +### Seleccione ubicaciones {#select-locations} -Selecciona una o varias **Localizaciones gestionadas** o **Localizaciones privadas** desde las que ejecutar tu test. {{% managed-locations %}} +Seleccione una o más {{< ui >}}Managed Locations{{< /ui >}} o {{< ui >}}Private Locations{{< /ui >}} desde las cuales ejecutar su prueba. {{% managed-locations %}} -La aplicación de Shopist está disponible públicamente en `https://www.shopist.io/`, por lo que puedes elegir cualquier localización gestionada desde la que ejecutar tu test. Para probar aplicaciones internas o simular el comportamiento del usuario en regiones geográficas concretas, mejor utiliza las [localizaciones privadas][8]. +La aplicación Shopist está disponible públicamente en `https://www.shopist.io/`, por lo que puede elegir cualquier ubicación administrada desde la cual ejecutar su prueba. Para probar aplicaciones internas o simular el comportamiento del usuario en regiones geográficas discretas, utilice [ubicaciones privadas][8] en su lugar. -### Indicar la frecuencia del test +### Especifique la frecuencia de la prueba {#specify-test-frequency} -Selecciona la frecuencia con la que quieres que se ejecute tu test. Puedes mantener la frecuencia predeterminada de 1 minuto. +Seleccione la frecuencia con la que desea que se ejecute su prueba. Puede dejar la frecuencia predeterminada de 1 minuto. -Además de ejecutar tu test Synthetic de forma programada, puedes activarlo manualmente o desde tus [pipelines de CI/CD][9]. +Además de ejecutar su prueba Synthetic según un horario, puede activarla manualmente o directamente desde sus [CI/CD pipelines][9]. -### Definir las condiciones de alerta +### Defina las condiciones de alerta {#define-alert-conditions} -Puedes definir las condiciones de alerta para asegurarte de que tu test no se active en situaciones como un incidente breve y esporádico en la red. De este modo, solo recibirás alertas en caso de que haya problemas reales con tu endpoint. +Puede definir condiciones de alerta para asegurarse de que su prueba no se active por cosas como una falla de red esporádica, de modo que solo reciba alertas en caso de problemas reales con su punto de conexión. -Puedes indicar el número de fallos consecutivos que deberían producirse antes de considerar que una localización ha fallado: +Puede especificar el número de fallas consecutivas que deben ocurrir antes de considerar que una ubicación falló: ```text Retry test 2 times after 300 ms in case of failure ``` -También puedes configurar tu test para activar solo una notificación cuando el endpoint deje de funcionar durante cierto tiempo y en un número determinado de localizaciones. En el siguiente ejemplo, la regla de alerta está configurada para enviar una notificación si el test falla durante tres minutos en dos localizaciones distintas: +También puede configurar su prueba para que solo active una notificación cuando su punto de conexión deje de funcionar durante una cierta cantidad de tiempo y número de ubicaciones. En el siguiente ejemplo, la regla de alerta está configurada para enviar una notificación si la prueba falla durante tres minutos en dos ubicaciones diferentes: ```text An alert is triggered if your test fails for 3 minutes from any 2 of 13 locations ``` -### Configurar el monitor de tests - -Redacta el mensaje de la alerta y añade la dirección de correo electrónico a la que deben enviarse las alertas del test. También puedes usar [integraciones de notificaciones][10] como Slack, PagerDuty, Microsoft Teams y webhooks. Para activar una alerta Synthetic para estas herramientas de notificación, primero deberás configurar la [integración][11] correspondiente. +### Configure el seguimiento de prueba {#configure-the-test-monitor} -Cuando estés listo para guardar la configuración y el monitor del test, haz clic en **Create** (Crear). +Utilice esta sección para crear el **mensaje** que desea enviar con la notificación. La notificación incluye su mensaje personalizado y detalles sobre cualquier ubicación con fallas. Los mensajes de seguimiento prellenados se incluyen en el cuerpo del mensaje: -## Crear un test de API multipaso +{{< img src="/synthetics/browser_tests/browser_tests_pre-filled.png" alt="Sección de seguimiento de Synthetic Monitoring, que destaca los mensajes de seguimiento prellenados" style="width:100%;" >}} -Los [test de API multipaso][2] te permiten monitorizar las transacciones empresariales clave en la API. +Por ejemplo, el siguiente mensaje de seguimiento crea un seguimiento que itera sobre los pasos y extrae variables para pruebas de navegador: -{{< img src="getting_started/synthetics/multistep-api-test.png" alt="Información general de un test de API multipaso de Synthetics" style="width:100%;" >}} + ```text + {{! Liste las variables extraídas en todos los pasos exitosos }} + # Variables extraídas + {{#each synthetics.attributes.result.steps}} + {{#if extractedValue}} + * **Nombre**: `{{extractedValue.name}}` + **Valor:** {{#if extractedValue.secure}}*Ofuscado (valor oculto)*{{else}}`{{{extractedValue.value}}}`{{/if}} + {{/if}} + {{/each}} + ``` -De forma similar a los [tests de API][3], los tests de API multipaso te avisan cuando tus endpoints funcionan demasiado lentos o no cumplen alguna de las condiciones que has definido. Puedes crear variables a partir de respuestas de pasos individuales y volver a introducir tus valores en pasos posteriores, encadenando pasos de forma que imiten el comportamiento de tu aplicación o servicio. +When you're ready to save your test configuration and monitor, click {{< ui >}}Save & Edit Recording{{< /ui >}}. -El test de ejemplo que puedes ver a continuación muestra cómo se crea un test de API multipaso que monitorice la adición de un elemento a un carrito. Este test consta de tres pasos: +For more information, see [Using Synthetic Test Monitors][13]. -- Obtención de un carrito -- Obtención de un producto -- Adición del producto al carrito -Si no sabes en qué endpoints de la API crear tu test de API multipaso, utiliza los endpoints de ejemplo que aparecen a continuación. +## Create a multistep API test -Para crear un test de API multipaso nuevo, haz clic en **New Test** (Nuevo test) > **[Multistep API test][12]** (Test de API multipaso). Añade un nombre de test, como por ejemplo `Añadir un producto al carrito`, incluye etiquetas y selecciona localizaciones. +[Multistep API tests][2] allow you to monitor key business transactions at the API level. -### Obtener un carrito +{{< img src="getting_started/synthetics/multistep-api-test.png" alt="Descripción general de una prueba de API en varios pasos Synthetic" style="width:100%;" >}} -1. En **Define steps** (Definir pasos), haz clic en **Create Your First Step** (Crear tu primer paso). -2. Añade un nombre a tu paso. Ejemplo: `Obtener un carrito`. -3. Especifica el método HTTP y la URL que deseas consultar. Puedes introducir `POST` y `https://api.shopist.io/carts`. -4. Haz clic en **Test URL** para crear un elemento de carrito en el backend de la aplicación de Shopist. -5. Puedes mantener las aserciones predeterminadas o modificarlas. -6. Si lo deseas, puedes definir los parámetros de ejecución. +Al igual que con las [pruebas de API][3], las pruebas de API en varios pasos le avisan cuando sus puntos de conexión se vuelven demasiado lentos o no cumplen con las condiciones que definió. Puede crear variables a partir de respuestas de pasos individuales y volver a inyectar sus valores en pasos posteriores, encadenando los pasos de una manera que imite el comportamiento de su aplicación o servicio. - Si seleccionas **Continue with test if this step fails** (Continuar con el test si este paso sale mal), podrás asegurarte de que se comprueba una recopilación completa de endpoints o de que se ha ejecutado el último paso de la limpieza, independientemente de que los pasos anteriores hayan salido bien o mal. La función del paso **Retry** (Reintentar) es útil en situaciones en las que sabes que el endpoint de la API puede tardar algún tiempo en responder. +La prueba de ejemplo a continuación demuestra la creación de una prueba de API en varios pasos que hace un seguimiento de la adición de un artículo a un carrito. Esta prueba contiene tres pasos: - En este ejemplo, no se necesita ningún parámetro de ejecución en concreto. +- Obtener un carrito +- Obtener un producto +- Agregar el producto al carrito -7. Para crear una variable a partir del valor del ID del carrito situado al final del encabezado `location`: - - Haz clic en **Extract a variable from response content** (Extraer una variable del contenido de la respuesta). - - Ponle a tu variable el nombre `CART_ID`. - - En **Response Header** (Encabezado de la respuesta), selecciona `location`. - - En el campo **Parsing Regex** (Expresión regular de parseo), añade una expresión habitual, como `(?:[^\\/](?!(\\|/)))+$`. +Si no sabe en qué puntos de conexión de API crear su prueba de API en varios pasos, utilice los puntos de conexión de ejemplo a continuación. - {{< img src="getting_started/synthetics/multistep-test-extract-variables.png" alt="Variable extraída del contenido de la respuesta" style="width:100%;" >}} +Para crear una nueva prueba de API en varios pasos, haga clic en {{< ui >}}New Test{{< /ui >}} > [{{< ui >}}Multistep API test{{< /ui >}}][12]. Agregue un nombre de prueba como `Add product to cart`, incluya etiquetas y seleccione ubicaciones. -8. Haz clic en **Save Variable** (Guardar variable). -9. Cuando hayas terminado de crear este paso de test, haz clic en **Save Step** (Guardar paso). +### Obtener un carrito {#get-a-cart} -### Obtener un producto +1. En {{< ui >}}Define steps{{< /ui >}}, haga clic en {{< ui >}}Create Your First Step{{< /ui >}}. +2. Agregue un nombre a su paso, por ejemplo: `Get a cart`. +3. Especifique el método HTTP y la URL que desea consultar. Puede ingresar `POST` y `https://api.shopist.io/carts`. +4. Haga clic en {{< ui >}}Test URL{{< /ui >}}. Esto crea un artículo de carrito en el backend de la aplicación Shopist. +5. Deje las aserciones predeterminadas o modifíquelas. +6. Opcionalmente, defina los parámetros de ejecución. -1. En **Define another step** (Definir otro paso), haz clic en **Add Another Step** (Añadir otro paso). Por defecto, puedes crear un máximo de diez pasos. -2. Ponle un nombre a tu paso. Ejemplo: `Obtener un producto`. -3. Especifica el método HTTP y la URL que deseas consultar. Aquí, puedes añadir: `GET` y `https://api.shopist.io/products.json`. -4. Haz clic en **Test URL** para obtener una lista de los productos disponibles en la aplicación de Shopist. -5. Puedes mantener las aserciones predeterminadas o modificarlas. -6. Opcionalmente, define los parámetros de ejecución. En este ejemplo, no se necesita ningún parámetro de ejecución en concreto. -7. Para crear una variable a partir del ID del producto que se encuentra en el cuerpo de la respuesta: - - Haz clic en **Extract a variable from response content** (Extraer una variable del contenido de la respuesta). - - Ponle a tu variable el nombre `PRODUCT_ID`. - - Haz clic en la pestaña **Response Body** (Cuerpo de la respuesta). - - Haz clic en la clave `$oid` de cualquier producto para generar una ruta JSON, como `$[0].id['$oid']`. -8. Haz clic en **Save Variable** (Guardar variable). -9. Cuando hayas terminado de crear este paso de test, haz clic en **Save Step** (Guardar paso). + Seleccionar {{< ui >}}Continue with test if this step fails{{< /ui >}} es útil para asegurarse de que se pruebe una colección completa de puntos de conexión o para garantizar que se ejecute el último paso de limpieza, independientemente del éxito o fracaso de los pasos anteriores. La función de paso {{< ui >}}Retry{{< /ui >}} es útil en situaciones en las que sabe que su punto de conexión de API puede tardar algún tiempo en responder. + + En este ejemplo, no se necesita ningún parámetro de ejecución específico. -### Añadir un producto al carrito +7. Para crear una variable a partir del valor del ID del carrito ubicado al final del encabezado `location`: + - Haga clic en {{< ui >}}Extract a variable from response content{{< /ui >}}. + - Nombre su variable como `CART_ID`. + - En {{< ui >}}Response Header{{< /ui >}}, seleccione `location`. + - En el campo {{< ui >}}Parsing Regex{{< /ui >}}, agregue una expresión regular como `(?:[^\\/](?!(\\|/)))+$`. -1. Haz clic en **Add Another Step** (Añadir otro paso) para realizar el último paso, es decir, añadir un producto a tu carrito. -2. Añade un nombre a tu paso. Ejemplo: `Añadir un producto al carrito`. -3. Especifica el método HTTP y la URL que deseas consultar. Aquí, puedes añadir: `POST` y `https://api.shopist.io/add_item.json`. -4. En la pestaña **Request Body** (Cuerpo de la solicitud), elige el tipo de cuerpo `application/json` e inserta lo siguiente: + {{< img src="getting_started/synthetics/multistep-test-extract-variables.png" alt="Variable extraída del contenido de la respuesta" style="width:100%;" >}} +8. Haga clic en {{< ui >}}Save Variable{{< /ui >}}. +9. Cuando termine de crear este paso de prueba, haga clic en {{< ui >}}Save Step{{< /ui >}}. + +### Obtener un producto {#get-a-product} + +1. En {{< ui >}}Define another step{{< /ui >}}, haga clic en {{< ui >}}Add Another Step{{< /ui >}}. De forma predeterminada, puede crear hasta diez pasos. +2. Agregue un nombre a su paso, por ejemplo: `Get a product`. +3. Especifique el método HTTP y la URL que desea consultar. Aquí, puede agregar: `GET` y `https://api.shopist.io/products.json`. +4. Haga clic en {{< ui >}}Test URL{{< /ui >}}. Esto recupera una lista de productos disponibles en la aplicación Shopist. +5. Deje las aserciones predeterminadas o modifíquelas. +6. Opcionalmente, defina los parámetros de ejecución. En este ejemplo, no se necesita ningún parámetro de ejecución específico. +7. Para crear una variable a partir del ID de producto ubicado en el cuerpo de la respuesta: + - Haga clic en {{< ui >}}Extract a variable from response content{{< /ui >}} + - Nombre su variable como `PRODUCT_ID`. + - Haga clic en la pestaña {{< ui >}}Response Body{{< /ui >}}. + - Haga clic en la clave `$oid` de cualquier producto para generar una ruta JSON como `$[0].id['$oid']`. +8. Haga clic en {{< ui >}}Save Variable{{< /ui >}}. +9. Cuando termine de crear este paso de prueba, haga clic en {{< ui >}}Save Step{{< /ui >}}. + +### Agregar producto al carrito {#add-product-to-cart} + +1. Haga clic en {{< ui >}}Add Another Step{{< /ui >}} para agregar el paso final, la adición de un producto a su carrito. +2. Agregue un nombre a su paso, por ejemplo: `Add product to cart`. +3. Especifique el método HTTP y la URL que desea consultar. Aquí, puede agregar: `POST` y `https://api.shopist.io/add_item.json`. +4. En la pestaña {{< ui >}}Request Body{{< /ui >}}, elija el tipo de cuerpo `application/json` e inserte lo siguiente: + {{< code-block lang="java" disable_copy="true" collapsible="true" >}} { "cart_item": { @@ -188,29 +207,33 @@ Para crear un test de API multipaso nuevo, haz clic en **New Test** (Nuevo test) "cart_id": "{{ CART_ID }}" } {{< /code-block >}} + +5. Haga clic en {{< ui >}}Test URL{{< /ui >}}. Esto agrega el producto que extrajo en el paso 2 al carrito que creó en el paso 1 y devuelve una URL de pago. +6. En {{< ui >}}Add assertions (optional){{< /ui >}}, haga clic en {{< ui >}}Response Body{{< /ui >}} y haga clic en la clave `url` para que su prueba confirme que el recorrido finalizó con una respuesta que contiene la URL de pago. +7. No se necesitan parámetros de ejecución ni extracciones de variables en este último paso. +10. Cuando termine de crear este paso de prueba, haga clic en {{< ui >}}Save Step{{< /ui >}}. + +{{< img src="getting_started/synthetics/defined-steps.png" alt="Pasos de prueba creados" style="width:100%;" >}} -5. Haz clic en **Test URL** para añadir el producto extraído en el paso 2 al carrito que has creado en el paso 1 y devolver una URL para proceder al pago. -6. En **Add assertions (optional)** (Añadir aserciones [opcional]), haz clic en **Response Body** (Cuerpo de la respuesta) y en la tecla `url` para que tu test confirme que el recorrido ha finalizado con una respuesta que contiene la URL de pago. -7. En este último paso, no se necesitan parámetros de ejecución ni extracciones de variables. -10. Cuando hayas terminado de crear este paso de test, haz clic en **Save Step** (Guardar paso). +Luego puede configurar el resto de sus condiciones de prueba, como la frecuencia de prueba y las condiciones de alerta, y el test monitor. Cuando esté listo para guardar su configuración de prueba y el test monitor, haga clic en {{< ui >}}Create{{< /ui >}}. -{{< img src="getting_started/synthetics/defined-steps.png" alt="Pasos del test creados" style="width:100%;" >}} +Para obtener más información, consulte [Using Synthetic Test Monitors][13]. -A continuación, puedes configurar el resto de las condiciones del test, tales como la frecuencia y las condiciones de alerta, así como el monitor del test. Cuando estés listo para guardar la configuración y el monitor de tu test, haz clic en **Create** (Crear). +## Consulte los resultados de la prueba {#look-at-test-results} -Para más información, consulta [Usar monitores de tests Synthetic][13]. +Las páginas {{< ui >}}API test{{< /ui >}} y {{< ui >}}Multistep API test detail{{< /ui >}} muestran una descripción general de la configuración de la prueba, el tiempo de actividad global asociado con los endpoints probados por ubicación, gráficos sobre el tiempo de respuesta y los tiempos de red, y una lista de resultados y eventos de la prueba. -## Consultar los resultados del test +Para solucionar problemas de una prueba fallida, revise los errores en la pestaña **Activity** o en la pestaña **Test Runs** y haga clic en un resultado de prueba fallido. Revise las aserciones fallidas y los detalles de la respuesta, como el código de estado, el tiempo de respuesta y los encabezados y el cuerpo asociados para diagnosticar el problema. -En las páginas **API test** (Test de API) y **Multistep API test detail** (Detalles del test de API multipaso), encontrarás la información general de la configuración del test, el tiempo de actividad global asociado a los endpoints del test según su localización, los gráficos con el tiempo de respuesta y los tiempos de red, así como una lista de los resultados y eventos del test. +{{< img src="synthetics/api_tests/api_test_summary_updated.png" alt="Página de detalles de la prueba de API que muestra la pestaña Activity con tiempo de actividad global, alert timeline y una lista de Test Runs recientes." style="width:100%;">}} -Para solucionar un problema de un test fallido, baja hasta **Test Results** (Resultados del test) y haz clic en un resultado del test que salió mal. Para diagnosticar el problema, revisa las aserciones fallidas y los detalles de la respuesta, tales como el código de estado, el tiempo de respuesta, así como los encabezados y el cuerpo asociados. +Con la [integración de APM con Synthetic Monitoring][14] de Datadog, acceda a la causa raíz de una ejecución de prueba fallida consultando la traza generada a partir de la ejecución de la prueba en la pestaña {{< ui >}}Traces{{< /ui >}}. -{{< img src="getting_started/synthetics/api-test-failure-5.png" alt="Fallo en el test de API" style="width:100%;">}} +### Inicie una Bits Investigation {#launch-a-bits-investigation} -Consulta la traza (trace) generada a partir de la ejecución del test fallido en la pestaña **Trazas** y descubre la causa raíz mediante la [integración de APM con la monitorización Synthetic][14] de Datadog. +Para identificar la causa raíz de una prueba de API sintética fallida, inicie una [Bits Investigation][16]. Bits Investigation analiza los resultados de las pruebas, las trazas, los logs y las métricas para determinar la causa raíz y marcar si el error es una regresión o una configuración incorrecta. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -226,6 +249,7 @@ Consulta la traza (trace) generada a partir de la ejecución del test fallido en [10]: /es/integrations/#cat-notification [11]: https://app.datadoghq.com/account/settings [12]: https://app.datadoghq.com/synthetics/multi-step/create -[13]: /es/synthetics/guide/synthetic-test-monitors +[13]: /es/monitors/types/synthetic_monitoring/ [14]: /es/synthetics/apm/ -[15]: /es/synthetics/api_tests/grpc_tests \ No newline at end of file +[15]: /es/synthetics/api_tests/grpc_tests +[16]: /es/bits_ai/bits_investigation/investigate_issues/#from-the-synthetic-test-details-page \ No newline at end of file diff --git a/hugo/content/es/getting_started/tracing/_index.md b/hugo/content/es/getting_started/tracing/_index.md index 5482738cce9..55a78af8ad1 100644 --- a/hugo/content/es/getting_started/tracing/_index.md +++ b/hugo/content/es/getting_started/tracing/_index.md @@ -1,50 +1,57 @@ --- aliases: - /es/getting_started/tracing/distributed-tracing -description: Configura el Monitoreo de Rendimiento de Aplicaciones (APM) para identificar - cuellos de botella, solucionar problemas y enviar trazas a Datadog. +description: Configure Application Performance Monitoring (APM) para identificar cuellos + de botella, solucionar problemas y enviar trazas a Datadog. further_reading: - link: /tracing/ tag: Documentación - text: Aprende más sobre las características de APM + text: Obtenga más información sobre funciones de APM - link: /tracing/metrics/runtime_metrics/ tag: Documentación - text: Habilita métricas de tiempo de ejecución + text: Habilite las métricas de tiempo de ejecución - link: /tracing/guide/#enabling-tracing-tutorials tag: Guías - text: Tutoriales sobre diversas formas de habilitar el seguimiento + text: Tutoriales para diversas formas de habilitar el rastreo - link: https://learn.datadoghq.com/courses/intro-to-apm - tag: Centro de Aprendizaje - text: Introducción a la Monitoreo de Rendimiento de Aplicaciones + tag: Centro de aprendizaje + text: Introducción a Application Performance Monitoring - link: https://dtdg.co/fe - tag: Habilitación de Fundamentos - text: Únete a una sesión interactiva para mejorar tu comprensión de APM -title: Introducción al Trazado de APM + tag: Foundation Enablement + text: Únase a una sesión interactiva para mejorar su comprensión de APM +title: Introducción al rastreo de APM --- -## Resumen {#overview} +## Descripción general {#overview} -El Monitoreo de Rendimiento de Aplicaciones (APM) de Datadog proporciona una profunda visibilidad en tus aplicaciones, permitiéndote identificar cuellos de botella en el rendimiento, solucionar problemas y optimizar tus servicios. +Datadog Application Performance Monitoring (APM) proporciona una visibilidad profunda de sus aplicaciones, lo que le permite identificar cuellos de botella en el rendimiento, solucionar problemas y optimizar sus servicios. -Esta guía demuestra cómo comenzar con APM y enviar tu primera traza a Datadog: +Esta guía demuestra cómo comenzar con APM y enviar su primera traza a Datadog: -1. Configura Datadog APM para enviar trazas a Datadog. -1. Ejecuta tu aplicación para generar datos. -1. Explora los datos recopilados en Datadog. +1. Configure Datadog APM para enviar trazas a Datadog. +1. Ejecute su aplicación para generar datos. +1. Explore los datos recopilados en Datadog. + +{{< skill-callout + title="Configure APM con un Agent" + text="Install the `dd-apm` skill in your AI coding agent for guided APM setup." + action_name="copy_dd_apm_skill_install_cmd" >}} +npx skills add https://github.com/datadog-labs/agent-skills --skill dd-apm --full-depth -y +{{< /skill-callout >}} ## Requisitos previos {#prerequisites} -Para completar esta guía, necesitas lo siguiente: +Para completar esta guía, necesita lo siguiente: -1. [Crea una cuenta de Datadog][1] si aún no lo has hecho. -1. Encuentra o crea una [clave de API de Datadog][2]. -1. Inicia un host o VM de Linux. +1. [Cree una cuenta de Datadog][1] si aún no lo ha hecho. +1. Encuentre o cree una [clave de Datadog API][2]. +1. Inicie un servidor o una VM Linux. -## Crea una aplicación {#create-an-application} +## Cree una aplicación {#create-an-application} Para crear una aplicación para observar en Datadog: -1. En tu host o VM de Linux, crea una nueva aplicación de Python llamada `hello.py`. Por ejemplo, `nano hello.py`. -1. Agrega el siguiente código a `hello.py`: +1. En su servidor o VM de Linux, cree una nueva aplicación de Python llamada `hello.py`. Por ejemplo, `nano hello.py`. +1. Agregue el siguiente código a `hello.py`: {{< code-block lang="python" filename="hello.py" collapsible="true" disable_copy="false" >}} from flask import Flask @@ -67,12 +74,12 @@ Para crear una aplicación para observar en Datadog: app.run(host='0.0.0.0', port=5050) {{< /code-block >}} -## Configura Datadog APM {#set-up-datadog-apm} +## Configure Datadog APM {#set-up-datadog-apm} -Para configurar Datadog APM sin necesidad de modificar el código de tu aplicación o el proceso de implementación, utiliza la instrumentación APM de un solo paso, o alternativamente, puedes configurar APM utilizando las bibliotecas de [trazado de Datadog][8]. +Para configurar Datadog APM sin necesidad de modificar el código de su aplicación o el proceso de implementación, utilice la instrumentación de un solo paso de APM o, alternativamente, puede configurar APM utilizando bibliotecas de [Datadog tracing][8]. -1. Ejecuta el comando de instalación: +1. Ejecute el comando de instalación: ```shell DD_API_KEY= DD_SITE="" DD_APM_INSTRUMENTATION_ENABLED=host DD_APM_INSTRUMENTATION_LIBRARIES=python:4 DD_ENV= bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" @@ -80,93 +87,93 @@ Para configurar Datadog APM sin necesidad de modificar el código de tu aplicaci Replace `` with your [Datadog API key][2], `` with your [Datadog site][7], and `` with the environment your Agent is installed on (for example, `development`). -1. Reinicia los servicios en tu host o VM. -1. Verifica que el agente esté en ejecución: +1. Reinicie los servicios en su servidor o VM. +1. Verifique que el Agent se esté ejecutando: ```shell sudo datadog-agent status ``` -Este enfoque instala automáticamente el Agente de Datadog, habilita Datadog APM y [instrumenta][5] tu aplicación en tiempo de ejecución. +Este enfoque instala automáticamente el Datadog Agent, habilita Datadog APM e [instrumenta][5] su aplicación en tiempo de ejecución. -## Ejecuta la aplicación {#run-the-application} +## Ejecute la aplicación {#run-the-application} -Cuando configuras Datadog APM con Instrumentación de Un Solo Paso, Datadog instrumenta automáticamente tu aplicación en tiempo de ejecución. +Cuando configura Datadog APM con la instrumentación de un solo paso, Datadog instrumenta automáticamente su aplicación en tiempo de ejecución. Para ejecutar `hello.py`: -1. Crea un entorno virtual de Python en el directorio actual: +1. Cree un entorno virtual de Python en el directorio actual: ```shell python3 -m venv ./venv ``` -1. Activa el `venv` entorno virtual: +1. Active el entorno virtual `venv`: ```shell source ./venv/bin/activate ``` -1. Instala `pip` y `flask`: +1. Instale `pip` y `flask`: ```shell sudo apt-get install python3-pip pip install flask ``` -1. Establece el nombre del servicio y ejecuta `hello.py`: +1. Establezca el nombre del servicio y ejecute `hello.py`: ```shell export DD_SERVICE=hello python3 hello.py ``` -## Prueba la aplicación {#test-the-application} +## Pruebe la aplicación {#test-the-application} -Prueba la aplicación para enviar trazas a Datadog: +Pruebe la aplicación para enviar trazas a Datadog: -1. En un nuevo símbolo del sistema, ejecuta lo siguiente: +1. En un nuevo símbolo del sistema, ejecute lo siguiente: ```shell curl http://0.0.0.0:5050/ ``` -1. Confirma que se devuelve una cita aleatoria. +1. Confirme que se devuelva una cita aleatoria. ```text Believe you can and you're halfway there. - Theodore Roosevelt ``` -Cada vez que ejecutes el comando `curl`, se envía una nueva traza a Datadog. +Cada vez que ejecuta el comando `curl`, se envía una nueva traza a Datadog. -## Explora trazas en Datadog {#explore-traces-in-datadog} +## Explore las trazas en Datadog {#explore-traces-in-datadog} -1. En Datadog, ve a [**APM** > **Servicios**][3]. Deberías ver un servicio de Python llamado `hello`: +1. En Datadog, vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Services{{< /ui >}}][3]. Debería ver un servicio de Python llamado `hello`: - {{< img src="/getting_started/apm/service-catalog.png" alt="El Catálogo de Software muestra el nuevo servicio de Python." style="width:100%;" >}} + {{< img src="/getting_started/apm/service-catalog.png" alt="El catálogo muestra el nuevo servicio de Python." style="width:100%;" >}} -1. Selecciona el servicio para ver sus métricas de rendimiento, como latencia, rendimiento y tasas de error. -1. Ve a [**APM** > **Trazas**][4]. Deberías ver una traza para el servicio `hello`: +1. Seleccione el servicio para ver sus métricas de rendimiento, como la latencia, el throughput y las tasas de error. +1. Vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Traces{{< /ui >}}][4]. Debería ver una traza para el servicio `hello`: {{< img src="/getting_started/apm/trace-explorer.png" alt="El explorador de trazas muestra la traza para el servicio hello." style="width:100%;" >}} -1. Selecciona una traza para ver sus detalles, incluyendo el gráfico de llamas, que ayuda a identificar cuellos de botella en el rendimiento. +1. Seleccione una traza para ver sus detalles, incluido el flame graph, que ayuda a identificar cuellos de botella en el rendimiento. ## Configuración avanzada de APM {#advanced-apm-setup} -Hasta este punto, permitiste que Datadog instrumentara automáticamente la `hello.py` aplicación utilizando Instrumentación de Paso Único. Este enfoque se recomienda si deseas capturar trazas esenciales a través de bibliotecas y lenguajes comunes sin modificar el código o instalar bibliotecas manualmente. +Hasta este punto, permitió que Datadog instrumentara automáticamente la aplicación `hello.py` mediante la instrumentación de un solo paso (Single Step Instrumentation). Este enfoque se recomienda si desea capturar trazas esenciales en bibliotecas y lenguajes comunes sin modificar el código ni instalar bibliotecas manualmente. -Sin embargo, si necesitas recopilar trazas de código personalizado o requieres un control más detallado, puedes agregar [instrumentación personalizada][6]. +Sin embargo, si necesita recopilar trazas de código personalizado o requiere un control más preciso, puede agregar [instrumentación personalizada][6]. -Para ilustrar esto, importarás el SDK de Python de Datadog en `hello.py` y crearás un tramo personalizado y una etiqueta de tramo. +Para ilustrar esto, importará el SDK de Python de Datadog en `hello.py` y creará un tramo personalizado y una etiqueta de tramo. Para agregar instrumentación personalizada: -1. Instala el SDK de Datadog: +1. Instale el SDK de Datadog: ```shell pip install ddtrace ``` -1. Agrega las líneas resaltadas al código en `hello.py` para crear una etiqueta de tramo personalizada `get_quote` y una etiqueta de tramo personalizada `quote`: +1. Agregue las líneas resaltadas al código en `hello.py` para crear un tramo personalizado `get_quote` y una etiqueta de tramo personalizada `quote`: {{< highlight python "hl_lines=3 15 17" >}} from flask import Flask @@ -192,35 +199,35 @@ Para agregar instrumentación personalizada: app.run(host='0.0.0.0', port=5050) {{< /highlight >}} -1. Ejecuta `hello.py` en el entorno virtual de antes: +1. Ejecute `hello.py` en el entorno virtual anterior: ```shell ddtrace-run python hello.py ``` -1. Ejecuta algunos comandos de `curl` en un símbolo del sistema separado: +1. Ejecute algunos comandos de `curl` en un símbolo del sistema independiente: ```shell curl http://0.0.0.0:5050/ ``` -1. En Datadog, ve a [**APM** > **Trazas**][4]. -1. Selecciona la traza **hello**. -1. Encuentra el nuevo tramo `get_quote` personalizado en el gráfico de llamas y pasa el cursor sobre él: +1. En Datadog, vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Traces{{< /ui >}}][4]. +1. Seleccione la traza `hello`. +1. Busque el nuevo tramo personalizado `get_quote` en el flame graph y pase el cursor sobre él: - {{< img src="/getting_started/apm/custom-instrumentation.png" alt="El tramo personalizado get_quote se muestra en el gráfico de llamas. Al pasar el cursor, se muestra la etiqueta de tramo de la cita. " style="width:100%;" >}} + {{< img src="/getting_started/apm/custom-instrumentation.png" alt="El tramo personalizado get_quote se muestra en el flame graph. Al pasar el cursor, se muestra la etiqueta de tramo quote. " style="width:100%;" >}} -1. Observa que la etiqueta de tramo personalizada `quote` se muestra en la pestaña **Info**. +1. Observe que la etiqueta de tramo personalizada `quote` se muestra en la pestaña {{< ui >}}Info{{< /ui >}}. ## ¿Qué sigue? {#whats-next} -Después de configurar el seguimiento y tu aplicación esté enviando datos a Datadog, explora características adicionales de APM: +Después de configurar el rastreo y de que su aplicación envíe datos a Datadog, explore funciones adicionales de APM: -### Catálogo de Software {#software-catalog} +### Catalog {#catalog} -[Software Catalog][9] proporciona una vista consolidada de sus servicios, combinando metadatos de propiedad, información de rendimiento, análisis de seguridad y asignación de costos en un solo lugar. Configure los metadatos del servicio [service metadata][10] utilizando etiquetas, anotaciones o un archivo `service.datadog.yaml` para enriquecer su servicio con información de propiedad, runbooks y enlaces de documentación. +[Catalog][9] proporciona una vista consolidada de sus servicios, combinando metadatos de propiedad, información sobre el rendimiento, análisis de seguridad y asignación de costos en un solo lugar. Configure [service metadata][10] usando etiquetas, anotaciones o un archivo `service.datadog.yaml` para enriquecer sus servicios con información de propiedad, runbooks y enlaces a documentación. -### Rastreo de ingestión y retención {#trace-ingestion-and-retention} +### Ingesta y retención de trazas {#trace-ingestion-and-retention} -Controle los costos y gestione el volumen de datos configurando [controles de ingestión][11] y [filtros de retención][12]. Los controles de ingestión le permiten personalizar las tasas de muestreo a nivel del Datadog Agent o SDK, mientras que los filtros de retención determinan qué tramos se indexan para búsqueda y análisis. +Controle los costos y administre el volumen de datos configurando [controles de ingesta][11] y [filtros de retención][12]. Los controles de ingesta le permiten personalizar las tasas de muestreo a nivel del Datadog Agent o del SDK, mientras que los filtros de retención determinan qué tramos se indexan para búsqueda y análisis. -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -232,7 +239,7 @@ Controle los costos y gestione el volumen de datos configurando [controles de in [6]: /es/tracing/trace_collection/custom_instrumentation/ [7]: /es/getting_started/site/ [8]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/ -[9]: /es/internal_developer_portal/software_catalog/ -[10]: /es/internal_developer_portal/software_catalog/entity_model/ +[9]: /es/internal_developer_portal/catalog/ +[10]: /es/internal_developer_portal/catalog/entity_model/ [11]: /es/tracing/trace_pipeline/ingestion_controls/ [12]: /es/tracing/trace_pipeline/trace_retention/ \ No newline at end of file diff --git a/hugo/content/es/gpu_monitoring/fleet.md b/hugo/content/es/gpu_monitoring/fleet.md index f5a8dc6e270..7f0f26de11e 100644 --- a/hugo/content/es/gpu_monitoring/fleet.md +++ b/hugo/content/es/gpu_monitoring/fleet.md @@ -1,210 +1,214 @@ --- -description: Un inventario de todos tus servidores acelerados por GPU que te ayuda +description: Un inventario de todos sus servidores acelerados por GPU que le ayuda a diagnosticar problemas de rendimiento. further_reading: - link: https://www.datadoghq.com/blog/datadog-gpu-monitoring/ - tag: Blog - text: Optimiza y soluciona problemas de la infraestructura de IA con Datadog GPU - Monitoring. -private: true -title: Página de Datadog GPU Monitoring de la flota. + tag: blog + text: Optimice y solucione problemas de infraestructura de IA con Datadog GPU Monitoring +title: Página de flota de GPU Monitoring --- -## Resumen +## Descripción general {#overview} -La [página de flota de GPU][0] proporciona un inventario detallado de todos tus hosts acelerados por GPU para un período de tiempo específico. Utiliza esta vista para descubrir ineficiencias a través de la telemetría de recursos, que abarca desde métricas de rendimiento y uso hasta costos. Esta página también presenta las recomendaciones de aprovisionamiento y optimización de rendimiento de Datadog para tus dispositivos, para ayudarte a maximizar el valor de tu gasto en GPU. +[GPU Fleet Explorer][0] proporciona un desglose detallado de la infraestructura de IA (como dispositivos GPU, servidores o clústeres de Ray) y las cargas de trabajo de IA (como Pods, contenedores Kube o ejecuciones de entrenamiento) para un período de tiempo específico. Esta página le ayuda a descubrir ineficiencias en el aprovisionamiento y optimizaciones del rendimiento de las cargas de trabajo a través de telemetría de recursos, incluida la utilización de GPU, métricas a nivel de servidor y costos. También muestra la detección en tiempo real de Datadog de problemas que afectan a su flota y cargas de trabajo, con orientación sobre cómo remediarlos. -## Desglosa tu infraestructura por clúster, servidor o dispositivo. +## Detecte problemas con seguimientos preconfigurados {#detect-issues-with-out-of-the-box-monitors} -Primero selecciona cómo deseas conocer tu flota de GPU utilizando el interruptor que agrupa tu flota por clúster de Kubernetes (disponible solo para usuarios de Kubernetes), servidor (Nodo) o dispositivo GPU: +Datadog proporciona varias plantillas de seguimientos preconfigurados (OOTB) que detectan problemas comunes de GPU en tiempo real, que incluyen: -{{< img src="gpu_monitoring/fleet-toggle-2.png" alt="Interruptor para la página de flota de GPU que agrupa los resultados de la tabla por Clúster de Kubernetes, servidor o Dispositivo." style="width:90%;" >}} +- Picos de temperatura +- Limitación de potencia (Power cap throttling) +- Solicitudes de GPU no satisfechas +- Errores XID +- Errores ECC +- Cargas de trabajo con ráfagas +- Dispositivos inactivos -Tu selección se utiliza para llenar la tabla resultante. Si seleccionas _Clúster_ o _Servidor_, puedes hacer clic en el botón **`>`** junto a cada entrada de la tabla para ver los servidores de un clúster o los dispositivos de un servidor, respectivamente. +Puede personalizar los umbrales de cualquier seguimiento para adaptarlos a las necesidades de su organización. -{{< img src="gpu_monitoring/host_row_expansion.png" alt="Una entrada de servidor en la tabla." style="width:90%;" >}} +Para acceder a estas plantillas, haga clic en el menú desplegable {{< ui >}}Monitors{{< /ui >}} en la esquina superior derecha de la página. -**Nota**: La tabla de Clúster solo se llena si utilizas Kubernetes. +{{< img src="gpu_monitoring/fleet-ootb-monitors.jpg" alt="Menú desplegable de seguimientos en la esquina superior derecha de la página de GPU Fleet, que muestra plantillas de seguimientos preconfigurados para temperatura, limitación de potencia, solicitudes de GPU no satisfechas, errores XID críticos, errores XID generales, errores ECC, cargas de trabajo ráfaga y dispositivos inactivos" style="width:40%;" >}} -### Explora tu flota de GPU con filtros y agrupaciones. +## Divida su flota por cualquier etiqueta {#break-down-your-fleet-by-any-tag} -Utiliza los menús desplegables de filtro rápido en la parte superior de la página para filtrar por un **Proveedor**, **Tipo de Dispositivo**, **Clúster**, **Región**, **Servicio**, **Centro de Datos**, **Entorno** o **Equipo**. +GPU Fleet Explorer le brinda visibilidad desde sus cargas de trabajo de IA hasta la infraestructura de IA subyacente. Puede cambiar entre entidades de carga de trabajo como pods y ejecuciones de entrenamiento, y entidades de infraestructura como dispositivos, servidores y clústeres. -También puedes **Buscar** o **Agrupar** por otras etiquetas en los campos que se muestran a continuación. Por ejemplo, puedes seleccionar el interruptor para servidor y luego agrupar por `Team` para ver una entrada de la tabla para cada equipo único. Haz clic en el botón **`>`** junto a cualquier entrada para ver los servidores utilizados por ese equipo y los dispositivos GPU que aceleran esos servidores. +{{< img src="gpu_monitoring/gpu-fleet-sidenav.jpg" alt="Barra de navegación lateral que muestra entidades de infraestructura de IA (Dispositivos, Hosts, Clústeres Kube, Clústeres Ray) y entidades de cargas de trabajo de IA (Pods, Contenedores Kube, Ejecuciones de entrenamiento)" style="width:30%;" >}} -**Nota**: Solo puedes **Agrupar por** una etiqueta adicional. +**Nota**: Las opciones de Clústeres Kube, Pods y Contenedores Kube en la navegación lateral solo están disponibles si utiliza Kubernetes. -{{< img src="gpu_monitoring/filters_and_groupings-2.png" alt="El menú para filtrar y agrupar en la página de la Flota de GPU" style="width:90%;" >}} +Utilice los menús desplegables de filtro en la parte superior de la página para filtrar por un {{< ui >}}Provider{{< /ui >}}, {{< ui >}}Device Type{{< /ui >}}, {{< ui >}}Cluster{{< /ui >}}, {{< ui >}}Region{{< /ui >}}, {{< ui >}}Service{{< /ui >}}, {{< ui >}}Data Center{{< /ui >}}, {{< ui >}}Environment{{< /ui >}} o {{< ui >}}Team{{< /ui >}} específico. -## Vistas impulsadas por casos de uso -Datadog te guía a través de tus flujos de trabajo de aprovisionamiento y optimización de rendimiento al proporcionar dos vistas dedicadas impulsadas por casos de uso. +También puede {{< ui >}}Search{{< /ui >}} o {{< ui >}}Group{{< /ui >}} por otras etiquetas utilizando los campos de búsqueda y agrupación. Por ejemplo, puede agrupar por {{< ui >}}Service{{< /ui >}} para visualizar una fila en la tabla para cada servicio único. Haga clic en el botón {{< ui >}}\>{{< /ui >}} junto a cualquier entrada para ver los dispositivos de ese servicio. -### Aprovisionamiento -La pestaña de Aprovisionamiento muestra recomendaciones clave e información sobre métricas para asignar y gestionar tu capacidad. +{{< img src="gpu_monitoring/host_row_expansion-2.png" alt="Tabla de flota de GPU que muestra los servicios con sus tipos de dispositivo, con el botón de expandir fila resaltado" style="width:90%;" >}} -{{< img src="gpu_monitoring/provisioning-tab.png" alt="La vista impulsada por casos de uso de Aprovisionamiento" style="width:90%;" >}} +{{< img src="gpu_monitoring/filters_and_groupings-3.png" alt="Menús desplegables de filtro y selector de agrupar por en la parte superior de la página de GPU Fleet" style="width:90%;" >}} -Recomendaciones OOTB: -- Datadog detecta proactivamente el estrangulamiento térmico o defectos de hardware y recomienda instantáneamente acciones correctivas basadas en errores de hardware como errores ECC/XID. -- Datadog detecta si los dispositivos inactivos deben ser aprovisionados para evitar que permanezcan inactivos. +## Vistas y recomendaciones basadas en casos de uso {#use-case-driven-views-and-recommendations} +La página Fleet Explorer de GPU Monitoring ofrece dos vistas dedicadas basadas en casos de uso: -Métricas relevantes para tu flujo de trabajo de aprovisionamiento: -- Conteo de Errores ECC y XID -- Actividad Gráfica -- Actividad de SM -- Memoria de GPU -- Dispositivos Asignados (solo disponible para usuarios de Kubernetes) -- Dispositivos Activos -- Costo Inactivo +- **Aprovisionamiento**: Asigne capacidad y administre cuotas. +- **Rendimiento**: Optimice la eficiencia y el rendimiento de la carga de trabajo. -### Rendimiento -La pestaña de Rendimiento te ayuda a entender la ejecución de cargas de trabajo y a ajustar la utilización de la GPU para usar tus dispositivos de manera más efectiva. +### Aprovisionamiento {#provisioning} +La pestaña {{< ui >}}Provisioning{{< /ui >}} detecta cualquier problema de salud del hardware que afecte la asignación de sus dispositivos a las cargas de trabajo y proporciona orientación sobre cómo remediarlos. -{{< img src="gpu_monitoring/performance-tab.png" alt="La vista de Rendimiento orientada a casos de uso" style="width:90%;" >}} +{{< img src="gpu_monitoring/provisioning-tab-3.jpg" alt="La vista basada en casos de uso de Aprovisionamiento" style="width:90%;" >}} -Recomendaciones OOTB: -- Si tus cargas de trabajo son intensivas en CPU, Datadog señala los servidores con saturación de CPU y recomienda soluciones. -- Si tus cargas de trabajo no están utilizando efectivamente sus dispositivos de GPU asignados, Datadog proporciona recomendaciones para ajustar las cargas de trabajo y obtener más valor de su capacidad. +Para cada incidencia detectada, Datadog recomienda acciones de remediación paso a paso para ayudarle a resolverla. -Métricas relevantes para tu flujo de trabajo de rendimiento: -- Conteo de Errores ECC y XID -- Actividad Gráfica -- Actividad de SM -- Memoria de GPU -- Dispositivos Efectivos -- Potencia -- Temperatura -- PCIe RX -- PCIe Tx -- Utilización de CPU +{{< img src="gpu_monitoring/critical-xid-recommendation.jpg" alt="Acciones de remediación recomendadas para un error XID crítico" style="width:60%;" >}} -## Gráfico Resumen +#### Gráfico de resumen de aprovisionamiento {#provisioning-summary-graph} -Después de alternar entre Clúster, servidor o Dispositivo, el **Gráfico Resumen** muestra la telemetría clave de recursos a través de toda tu infraestructura de GPU agrupada por ese valor de alternancia. Expande la sección a continuación para ver una tabla de las métricas disponibles y lo que representan. +El gráfico de resumen proporciona visualizaciones listas para usar (OOTB) para la telemetría clave vinculada a la vista basada en el caso de uso seleccionada. Para el caso de uso de Aprovisionamiento, esto desglosa sus dispositivos Aprovisionados, Asignados y Activos para que pueda recuperar el gasto inactivo desperdiciado y redescubrir dispositivos disponibles que pueden asignarse a cargas de trabajo. -{{% collapse-content title="Consulta la lista completa de métricas de GPU" level="h4" expanded=false id="gpu-metrics-table" %}} -| Métrica | Definición | Nombre de la Métrica | -| ----------------------| ------------------------------------------------------------------------| --------------------------------------------- | -| Utilización del Núcleo | (Solo disponible con System Probe habilitado para métricas avanzadas de eBPF) `Cores Used/Cores Limit` para procesos de GPU. Medida de la Utilización Temporal del Núcleo.| `gpu_core_utilization` -| Utilización de Memoria | Memoria de GPU utilizada / Límite de Memoria de GPU para procesos de GPU. | `gpu_memory_utilization` -| Rendimiento PCIe | Bytes recibidos y bytes transmitidos a través de PCI desde el dispositivo GPU por segundo. | `gpu.pci.throughput.rx`,`gpu.pci.throughput.tx` -| Actividad Gráfica | Porcentaje de tiempo que el motor gráfico estuvo activo. | `gpu.gr_engine_active` -| Actividad SM | Porcentaje de tiempo que el multiprocesador de transmisión estuvo activo. | `gpu.sm_active` -| Potencia | Uso de energía para el dispositivo GPU.
**Nota**: En arquitecturas GA100 y anteriores, esto representa la potencia instantánea en ese momento.
Para arquitecturas más nuevas, representa el consumo promedio de energía (Watts) durante un segundo. | `gpu.power.usage` -| Temperatura | Temperatura de un dispositivo GPU. | `gpu.temperature` -| Núcleos Usados | (Solo emitido si hay procesos activos) Número promedio de núcleos GPU que un proceso estaba utilizando en el intervalo. | `gpu.core.usage` -| Memoria Usada | (Solo emitido si hay procesos activos) La memoria utilizada por este proceso en el momento en que se consultó la métrica. | `gpu.memory.usage` -| Total de Dispositivos | Conteo de todos los dispositivos que envían datos durante este período de tiempo. | `gpu.device.total` -{{% /collapse-content %}} +{{< img src="gpu_monitoring/summary-graph.jpg" alt="Gráfico de resumen que muestra los desgloses de Dispositivos Aprovisionados, Dispositivos Asignados y Dispositivos Activos" style="width:90%;" >}} + +Expanda esta sección a continuación para ver una tabla de las opciones disponibles y lo que representan. + +{{% collapse-content title="Ver la lista completa de opciones del gráfico de resumen de Aprovisionamiento" level="h5" expanded=false id="provisioning-summary-graph-table" %}} +| Opción | Definición | +| -------------------- | ---------------------------------------------------------- | +| Dispositivos Aprovisionados | Desglose de dispositivos aprovisionados y dispositivos activos. | +| Dispositivos Asignados | Desglose de dispositivos disponibles por asignados frente a no asignados. | +| Dispositivos Activos | Desglose de dispositivos asignados por activos frente a inactivos. | +{{% /collapse-content %}} + +### Rendimiento {#performance} +La pestaña {{< ui >}}Performance{{< /ui >}} detecta cualquier incidencia de salud del hardware o de carga de trabajo que esté deteniendo las cargas de trabajo que se ejecutan en sus dispositivos GPU. Esto proporciona una única fuente de información y orientación para los ingenieros de plataforma y los equipos de IA/ML sobre cómo solucionar esos problemas. + +{{< img src="gpu_monitoring/performance-tab-3.jpg" alt="La vista basada en casos de uso de Rendimiento" style="width:90%;" >}} + +Para cada incidencia detectada, Datadog recomienda acciones de remediación paso a paso para ayudarle a resolverla. + +{{< img src="gpu_monitoring/power-cap-recommendation.jpg" alt="Acciones de remediación recomendadas para una incidencia de limitación de potencia de GPU" style="width:60%;" >}} + +#### Gráfico de resumen de rendimiento {#performance-summary-graph} -Si has seleccionado una etiqueta adicional para agrupar---por ejemplo, _equipo_---cada serie temporal única en el Gráfico Resumen corresponde al valor de un equipo para la métrica seleccionada. - -## Inventario de tu infraestructura impulsada por GPU - -Esta tabla desglosa tu infraestructura impulsada por GPU por cualquier etiqueta de tu elección. Si no has especificado una etiqueta adicional en el campo **Agrupar por**, los resultados se agrupan por tu vista seleccionada: Clúster, servidor o Dispositivo. - -Por defecto, la tabla de resultados muestra las siguientes columnas: - -- Tipo de dispositivo -- Actividad del motor gráfico -- Actividad de SM (solo si System Probe está habilitado) -- Utilización del núcleo -- Utilización de la memoria -- Costo de inactividad -- Recomendación - -Puedes hacer clic en el ícono de engranaje para personalizar qué métricas se muestran en la tabla. Expande la sección a continuación para ver una lista completa de las métricas disponibles. - -{{% collapse-content title="Ve la lista completa de métricas disponibles" level="h4" expanded=false id="metric-full-list" %}} -| Métrica | Definición | Nombre de la Métrica | -| ----------------------| ------------------------------------------------------------------------| --------------------------------------------- | -| Utilización de CPU | El porcentaje de tiempo que la CPU pasó ejecutando procesos en el espacio de usuario. Se muestra como porcentaje. | `system.cpu.user` -| Tipo de dispositivo | Tipo de dispositivo GPU. | `gpu_device` -| Dispositivos totales | Conteo de todos los dispositivos que envían datos durante este período de tiempo. | `gpu.device.total` -| Dispositivos asignados | (solo disponible si se utiliza Kubernetes) Conteo de dispositivos que han sido asignados a una carga de trabajo. | `gpu.device.total` -| Dispositivos activos | Conteo de dispositivos que se utilizan activamente para una carga de trabajo / ocupados. Si se utiliza Kubernetes: cantidad de dispositivos asignados que se utilizan activamente para una carga de trabajo. | `gpu.gr_engine_active` -| Dispositivos Efectivos | Cantidad de dispositivos que se utilizan y funcionan durante más del 50% de su vida útil. | `gpu.sm_active` -| Actividad del Motor Gráfico| Porcentaje de tiempo que el motor gráfico estuvo activo. | `gpu.gr_engine_active` -| Actividad de SM | Porcentaje de tiempo que el multiprocesador de transmisión estuvo activo. | `gpu.sm_active` -| Reloj de SM | Frecuencia del reloj de SM en MHz. | `gpu.clock_speed.sm` -| Rendimiento de RX de PCIe | Bytes recibidos a través de PCI desde el dispositivo GPU por segundo. | `gpu.pci.throughput.rx` -| Rendimiento de TX de PCIe | Bytes transmitidos a través de PCI al dispositivo GPU por segundo. | `gpu.pci.throughput.tx` -| Potencia | Uso de energía para el dispositivo GPU.
**Nota**: En arquitecturas GA100 y anteriores, esto representa la potencia instantánea en ese momento.
Para arquitecturas más nuevas, representa el consumo promedio de energía (Watts) durante un segundo. | `gpu.power.usage` -| Temperatura | Temperatura de un dispositivo GPU. | `gpu.temperature` -| Núcleos Utilizados | (Solo se emite si hay procesos activos) Número promedio de núcleos GPU que un proceso estaba utilizando en el intervalo. | `gpu.core.usage` -| Núcleos de GPU | Número de núcleos de GPU que el proceso, contenedor o dispositivo tiene disponibles. | `gpu.core.limit` -| Memoria Usada | (Solo se emite si hay procesos activos) La memoria utilizada por este proceso en el momento en que se envió la métrica. | `gpu.memory.usage` -| Límite de Memoria | La cantidad máxima de memoria que un proceso, contenedor o dispositivo podría asignar. | `gpu.memory.limit` -| Toneladas Métricas de CO2 | Las toneladas métricas de dióxido de carbono equivalente (MTCO2e) son una unidad de medida que compara las emisiones de gases de efecto invernadero según su potencial de calentamiento global (GWP). Se calcula multiplicando la cantidad de un gas por su GWP. Por ejemplo, si el metano tiene un GWP de 21, entonces 1 millón de toneladas métricas de metano es equivalente a 21 millones de toneladas métricas de dióxido de carbono. | Fórmula basada en `gpu.power.usage` -| Utilización del Núcleo | (Solo disponible si el Sistema de Sondeo está habilitado) `Cores Used/Cores Limit` para procesos de GPU. Medida de la Utilización Temporal del Núcleo. | `gpu_core_utilization` -| Utilización de Memoria | Memoria de GPU utilizada / Límite de Memoria de GPU para procesos de GPU. | `gpu_memory_utilization` -| Costo de Inactividad | (Solo no cero para intervalos de tiempo mayores a 2 días) El costo de los recursos de GPU que están reservados y asignados, pero no utilizados. +El gráfico de resumen proporciona visualizaciones listas para usar (OOTB) para la telemetría clave vinculada a la vista basada en el caso de uso seleccionada. Para el caso de uso de Rendimiento, esto desglosa métricas clave de utilización de recursos como la Utilización de GPU o la Saturación de GPU junto con métricas de red, energía, temperatura y más. + +{{< img src="gpu_monitoring/summary-graph-performance.jpg" alt="Gráfico de resumen que muestra los desgloses de Utilización de GPU, Saturación de GPU y Memoria de GPU" style="width:90%;" >}} + +Expanda la sección a continuación para ver una tabla de las opciones disponibles y lo que representan. + +{{% collapse-content title="Ver la lista completa de opciones del gráfico de resumen de Rendimiento" level="h5" expanded=false id="performance-summary-graph-table" %}} +| Opción | Definición | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Utilización de CPU | Porcentaje de tiempo que la CPU pasó ejecutando procesos de espacio de usuario. | +| Memoria del servidor | Porcentaje de memoria utilizable en uso. | +| Utilización de GPU | Porcentaje promedio de tiempo que cada multiprocesador de transmisión estuvo activo (los valores más bajos indican tiempo de inactividad). | +| Saturación de GPU | Mide qué tan completamente se está utilizando la capacidad de ejecución paralela de la GPU durante el período de tiempo (relación promedio de warps activos con respecto a los warps máximos admitidos por multiprocesador de transmisión en todos los SM). | +| Memoria de GPU | Porcentaje de memoria de GPU utilizada respecto al límite total de memoria de GPU. | +| PCIe RX | Bytes recibidos a través de PCI desde el dispositivo GPU por segundo. | +| PCIe TX | Bytes transmitidos a través de PCI al dispositivo GPU por segundo. | +| NVLink RX | RX total de todos los enlaces NVLINK. | +| NVLink TX | TX total de todos los enlaces NVLINK. | +| Actividad de gráficos | Fracción de tiempo que la GPU estuvo realizando cualquier trabajo de cómputo durante el intervalo. Una señal general de si la GPU está ocupada o inactiva. | +| Energía | Consumo de energía del dispositivo GPU. En GA100 y arquitecturas anteriores, esto representa la potencia instantánea en ese momento. Para arquitecturas más recientes, representa la potencia promedio (vatios) durante un segundo. | +| Temperatura | Temperatura de un dispositivo GPU. | +| Reloj SM | Frecuencia de reloj SM en MHz. | +| Enlaces NVLink activos | Número de enlaces NVLINK activos para el dispositivo. | +| Errores ECC | Recuento total de errores ECC no corregidos. | +| Errores XID | Recuento de errores XID de NVIDIA, que indican problemas de hardware o a nivel de controlador. | +{{% /collapse-content %}} + +## Inventario de su infraestructura GPU {#inventory-of-your-gpu-powered-infrastructure} + +Esta tabla desglosa su infraestructura GPU por cualquier etiqueta que elija. Si no ha especificado una etiqueta adicional en el campo {{< ui >}}Group by{{< /ui >}}, los resultados se agrupan según la vista seleccionada: {{< ui >}}Cluster{{< /ui >}}, {{< ui >}}Host{{< /ui >}} o {{< ui >}}Device{{< /ui >}}. + +Puede hacer clic en el icono de engranaje para personalizar qué métricas se muestran dentro de la tabla. Expanda la sección a continuación para ver una lista completa de las métricas disponibles. + +{{% collapse-content title="Ver la lista completa de métricas disponibles" level="h3" expanded=false id="metric-full-list" %}} +| Métrica | Definición | Nombre de la métrica | Pestaña de aprovisionamiento | Pestaña de rendimiento | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ---------------- | --------------- | +| Costo de inactividad | (Solo distinto de cero para períodos de tiempo superiores a 2 días) El costo de los recursos de GPU que están reservados y asignados, pero no utilizados. | `gpu_monitoring.estimated_idle_cost` | ✓ | ✓ | +| | Dispositivos GPU con GPU Monitoring de Datadog configurados correctamente y que reportan métricas. | `kubernetes_state.node.gpu_capacity` | ✓ | — | +| Kubernetes disponible | Dispositivos GPU en buen estado que están encendidos y disponibles para su asignación, según el orquestador de Kubernetes. | `kubernetes_state.node.gpu_allocatable` | ✓ | — | +| Dispositivos asignados | (Solo disponible si usa Kubernetes) Cantidad de dispositivos que se han asignado a una carga de trabajo. | `gpu.device.total` | ✓ | — | +| Dispositivos no asignados | Cantidad de dispositivos no asignados y disponibles para su uso durante el período de tiempo. | | ✓ | — | +| Dispositivos activos | Cantidad de dispositivos que se utilizan activamente para una carga de trabajo o que están ocupados. Si usa Kubernetes: cantidad de dispositivos asignados que se utilizan activamente para una carga de trabajo. | `gpu.gr_engine_active` | ✓ | — | +| Dispositivos inactivos | Dispositivos GPU asignados a cargas de trabajo pero que no realizan ningún trabajo durante el período de tiempo. Un dispositivo se considera inactivo si `gpu.gr_engine_active` es igual a 0. | `gpu.gr_engine_active` | ✓ | — | +| Utilización de CPU | Porcentaje de tiempo que la CPU pasó ejecutando procesos de espacio de usuario. | `system.cpu.user` | — | ✓ | +| Memoria de servidor | Porcentaje de memoria utilizable en uso. | `system.mem.pct_usable` | — | ✓ | +| Utilización de GPU | Porcentaje promedio de tiempo que cada multiprocesador de transmisión estuvo activo (los valores más bajos indican tiempo de inactividad). | `gpu.sm_active` | — | ✓ | +| Saturación de GPU | Mide qué tan completamente se está utilizando la capacidad de ejecución paralela de la GPU durante el período de tiempo (relación promedio de warps activos con respecto a los warps máximos admitidos por multiprocesador de transmisión en todos los SM). | `gpu.sm_occupancy` | — | ✓ | +| Memoria de GPU | Porcentaje de memoria de GPU utilizada respecto al límite total de memoria de GPU. | `100 - (gpu.memory.free / gpu.memory.limit * 100)` | — | ✓ | +| Rendimiento de recepción PCIe | Bytes recibidos a través de PCI desde el dispositivo GPU por segundo. | `gpu.pci.throughput.rx` | — | ✓ | +| Rendimiento de transmisión PCIe | Bytes transmitidos a través de PCI al dispositivo GPU por segundo. | `gpu.pci.throughput.tx` | — | ✓ | +| NVLink RX | RX total de todos los enlaces NVLINK. | `gpu.nvlink.throughput.raw.rx` | — | ✓ | +| NVLink TX | TX total de todos los enlaces NVLINK. | `gpu.nvlink.throughput.raw.tx` | — | ✓ | +| Energía | Uso de energía para el dispositivo GPU.
**Nota**: En GA100 y arquitecturas anteriores, esto representa la energía instantánea en ese momento.
Para arquitecturas más recientes, representa el consumo de energía promedio (vatios) durante un segundo. | `gpu.power.usage` | — | ✓ | +| Temperatura | Temperatura de un dispositivo GPU. | `gpu.temperature` | — | ✓ | {{% /collapse-content %}} -## Panel lateral de detalles +## Panel lateral de detalles {#details-side-panel} -Hacer clic en cualquier fila en la tabla de Flota abre un panel lateral con más detalles para el clúster, host o dispositivo seleccionado. +Al hacer clic en cualquier fila de la tabla de Fleet se abre un panel lateral con más detalles sobre el clúster, servidor o dispositivo seleccionado. -### Entidades Conectadas +### Entidades conectadas {#connected-entities} -El monitoreo de GPU de Datadog no necesita depender del Exportador DCGM de NVIDIA. Utiliza el Agente de Datadog para observar las GPU directamente, proporcionando información sobre el uso y los costos de las GPU para los pods y procesos. En la sección **Entidades Conectadas** de cualquier vista de detalle, puedes ver la actividad de SM, la utilización de núcleos de GPU (solo si el Sistema de Sondeo está habilitado) y el uso de memoria de pods, procesos y trabajos de Slurm. Esto te ayuda a identificar qué cargas de trabajo reducir u optimizar para disminuir el gasto total. +GPU Monitoring de Datadog no necesita depender del DCGM Exporter de NVIDIA. Utiliza el Datadog Agent para observar las GPU directamente, proporcionando información sobre el uso y los costos de GPU para pods y procesos. En la sección {{< ui >}}Connected Entities{{< /ui >}} de cualquier vista de detalles, puede ver la actividad de SM, la utilización del núcleo de la GPU (solo si System Probe está habilitado) y el uso de memoria de pods, procesos y trabajos de Slurm. Esto le ayuda a identificar qué cargas de trabajo reducir u optimizar para disminuir el gasto total. -**Nota**: La pestaña **Pods** solo está disponible si estás utilizando Kubernetes. +**Nota**: La pestaña {{< ui >}}Pods{{< /ui >}} solo está disponible si utiliza Kubernetes. {{< tabs >}} {{% tab "Panel lateral del clúster" %}} -Dentro de este panel lateral, tienes un embudo específico del clúster que identifica: +Dentro de este panel lateral, tiene un embudo específico del clúster que identifica: -- Número de dispositivos Totales, Asignados (solo para usuarios de Kubernetes), Activos y Efectivos dentro de ese clúster en particular +- Número de dispositivos totales, asignados (solo usuarios de Kubernetes), activos y efectivos dentro de ese clúster en particular - Costo total estimado y costo de inactividad de ese clúster -- Entidades conectadas de ese clúster: pods, procesos y trabajos de Slurm -- Cuatro métricas clave (personalizables) para ese clúster: Utilización de Núcleo (solo si el Sistema de Sondeo está habilitado), Utilización de Memoria, Rendimiento PCIe y Actividad Gráfica -- Tabla de hosts asociados con ese clúster +- Entidades conectadas a ese clúster: pods, procesos y trabajos de Slurm +- Cuatro métricas clave (personalizables) para ese clúster: utilización de núcleos (solo si la sonda del sistema está habilitada), utilización de memoria, rendimiento de PCIe y actividad de gráficos +- Tabla de servidores asociados con ese clúster -{{< img src="gpu_monitoring/cluster_sidepanel.png" alt="Panel lateral específico del clúster que desglosa dispositivos inactivos, costos y entidades conectadas" style="width:100%;" >}} +{{< img src="gpu_monitoring/cluster_sidepanel.png" alt="Panel lateral específico del clúster que desglosa los dispositivos inactivos, los costos y las entidades conectadas" style="width:100%;" >}} {{% /tab %}} -{{% tab "Panel lateral del host" %}} +{{% tab "Panel lateral del servidor" %}} -Dentro de este panel lateral, tienes una vista específica del host que identifica: +Dentro de este panel lateral, tiene una vista específica del servidor que identifica: -- Metadatos relacionados con el host, como proveedor, tipo de instancia, utilización de CPU, memoria del sistema utilizada, memoria total del sistema, utilización de IO del sistema, actividad de SM y temperatura -- (solo disponible para usuarios de Kubernetes) Los dispositivos GPU específicos asignados a ese host ordenados por Actividad del Motor Gráfico -- Entidades Conectadas de ese host: pods, procesos y trabajos de Slurm +- Metadatos relacionados con el servidor, tales como proveedor, tipo de instancia, utilización de CPU, memoria del sistema utilizada, memoria total del sistema, utilización de E/S del sistema, actividad de SM y temperatura +- (solo disponible para usuarios de Kubernetes) Los dispositivos GPU específicos asignados a ese servidor, ordenados por actividad del motor de gráficos +- Entidades conectadas a ese servidor: pods, procesos y trabajos de Slurm -{{< img src="gpu_monitoring/host_sidepanel.png" alt="Panel lateral específico del host que muestra los dispositivos GPU vinculados a ese host y Entidades Conectadas" style="width:100%;" >}} +{{< img src="gpu_monitoring/host_sidepanel.png" alt="Panel lateral específico del servidor que muestra los dispositivos GPU vinculados a ese servidor y las entidades conectadas" style="width:100%;" >}} {{% /tab %}} {{% tab "Panel lateral del dispositivo" %}} -Dentro de este panel lateral, tienes una vista específica del dispositivo que identifica: +Dentro de este panel lateral, tiene una vista específica del dispositivo que identifica: - Recomendaciones (si las hay) sobre cómo utilizar este dispositivo de manera más efectiva - Detalles relacionados con el dispositivo: tipo de dispositivo, actividad de SM y temperatura -- Cuatro métricas clave relacionadas con las GPU: Actividad de SM, Utilización de Memoria, Potencia y Actividad del Motor Gráfico -- Entidades conectadas de ese clúster: pods y procesos +- Cuatro métricas clave vinculadas a las GPU: actividad de SM, utilización de memoria, energía y actividad del motor de gráficos +- Entidades conectadas a ese clúster: pods y procesos -{{< img src="gpu_monitoring/device_sidepanel.png" alt="Panel lateral específico del dispositivo que muestra recomendaciones sobre cómo utilizar el dispositivo de manera más efectiva y otra telemetría clave." style="width:100%;" >}} +{{< img src="gpu_monitoring/device_sidepanel.png" alt="Panel lateral específico del dispositivo que muestra recomendaciones sobre cómo usar el dispositivo de manera más efectiva y otra telemetría clave." style="width:100%;" >}} {{% /tab %}} {{< /tabs >}} -## Recomendaciones de instalación +## Recomendaciones de instalación {#installation-recommendations} + +Datadog analiza activamente su infraestructura y detecta brechas de instalación que pueden disminuir el valor que obtiene del GPU Monitoring. En este modal, puede encontrar recomendaciones de actualización de instalación para obtener el valor óptimo del GPU Monitoring. Por ejemplo, asegurarse de que sus servidores tengan instalada la [versión más reciente][1] del Datadog Agent, instalar la versión más reciente del controlador de NVIDIA y verificar si hay servidores mal configurados. -Datadog supervisa activamente su infraestructura y detecta brechas de instalación que pueden disminuir el valor que obtiene de la Monitorización de GPU. En este modal, puede encontrar recomendaciones de actualización de instalación para obtener el valor óptimo de la Monitorización de GPU. Por ejemplo, asegurarse de que sus hosts tengan instalada la [última versión][1] del Agente de Datadog, instalar la última versión del controlador de NVIDIA y verificar los hosts mal configurados. +
No utilice Datadog Agent v7.82.0, ya que puede causar pánicos de kernel inesperados.
-Para ver características avanzadas de Monitorización de GPU, como la atribución de recursos de GPU por procesos relacionados o trabajos de SLURM, debe habilitar [Live Processes][3] y la integración de [Slurm][4], respectivamente. +Para ver funciones avanzadas de monitoreo de GPU, como la atribución de recursos de GPU por procesos relacionados o trabajos de SLURM, debe habilitar [Live Processes][3] y la integración de [Slurm][4], respectivamente. -{{< img src="gpu_monitoring/installation.png" alt="Modal que contiene orientación de instalación para una experiencia de usuario más fluida en la Monitorización de GPU." style="width:90%;" >}} +{{< img src="gpu_monitoring/installation.png" alt="Modal que contiene orientación de instalación para una experiencia de usuario de GPU Monitoring más fluida." style="width:90%;" >}} -## Para saber más +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [0]: https://app.datadoghq.com/gpu-monitoring?mConfigure=false&mPage=fleet [1]: https://github.com/DataDog/datadog-agent/releases -[2]: https://www.nvidia.com/drivers/ [3]: /es/infrastructure/process/ [4]: /es/integrations/slurm/ \ No newline at end of file diff --git a/hugo/content/es/incident_response/work_management/ai/_index.md b/hugo/content/es/incident_response/work_management/ai/_index.md new file mode 100644 index 00000000000..7bfe3d4abce --- /dev/null +++ b/hugo/content/es/incident_response/work_management/ai/_index.md @@ -0,0 +1,34 @@ +--- +aliases: +- /es/service_management/case_management/mcp_server/ +- /es/incident_response/case_management/mcp_server/ +- /es/incident_response/case_management/ai/ +description: Datadog Work Management se integra con herramientas de IA para ayudar + a automatizar la clasificación, asignación y resolución de elementos de trabajo + mediante el MCP Server y agentes personalizados. +site_support_id: work_management_ai_site_support +title: Herramientas de IA para Work Management +--- +Datadog Work Management le permite asignar elementos de trabajo a agentes de IA junto con personas. Se integra con el Datadog MCP Server y agentes personalizados creados con Bits Agent Builder para automatizar la clasificación, asignación y resolución de elementos de trabajo. + +## MCP Server {#mcp-server} + +El Datadog MCP Server expone un conjunto de herramientas `cases` para que los agentes de IA que admiten el [Model Context Protocol (MCP)][2] puedan acceder a los datos de Work Management. El `cases`conjunto de herramientas permite a los agentes de IA crear, buscar, actualizar y gestionar elementos de trabajo. Los flujos de trabajo admitidos incluyen: + +- **Búsqueda de elementos de trabajo** según el estado, la prioridad, el proyecto u otros filtros +- **Recuperación de detalles de un elemento de trabajo** para comprender la cronología más reciente de acciones y el trabajo restante +- **Creación de un nuevo elemento de trabajo** para realizar un seguimiento de la información relacionada con una investigación en curso +- **Actualización de un elemento de trabajo existente** con nuevos hallazgos, enlaces a tickets de Jira relacionados o prioridad escalada + +Para obtener instrucciones de configuración y detalles completos sobre el `cases`conjunto de herramientas, consulte la [documentación del Datadog MCP Server][1]. + +## Agentes personalizados {#custom-agents} + +{{< callout url="https://www.datadoghq.com/product-preview/custom-agents-in-case-management/" btn_hidden="false" header="Únase a la vista previa">}} La integración de Work Management con agentes personalizados está en vista previa.{{< /callout >}} + +Asigne elementos de trabajo a agentes especializados creados con [Bits Agent Builder][3] para automatizar el ciclo de vida completo del elemento de trabajo, desde la clasificación inicial hasta el seguimiento y la resolución. Para ver casos de uso de ejemplo, arquetipos de agentes y asignación manual y automatizada, consulte [Custom Agents][4]. + +[1]: /es/mcp_server +[2]: https://modelcontextprotocol.io/ +[3]: /es/actions/agents/ +[4]: /es/incident_response/work_management/ai/custom_agents/ \ No newline at end of file diff --git a/hugo/content/es/llm_observability/build_with_ai/claude_code_skills.md b/hugo/content/es/llm_observability/build_with_ai/claude_code_skills.md new file mode 100644 index 00000000000..f201e0ae56f --- /dev/null +++ b/hugo/content/es/llm_observability/build_with_ai/claude_code_skills.md @@ -0,0 +1,309 @@ +--- +aliases: +- /es/llm_observability/guide/claude_code_skills/ +description: Utilice las habilidades de Claude Code de Datadog para clasificar sesiones, + diagnosticar fallas, comparar experimentos, generar código de experimento en Python + y realizar el bootstrap de evaluadores con sus datos de producción en vivo. +further_reading: +- link: /llm_observability/investigate/evaluations/ + tag: Documentación + text: Evaluaciones de Agent Observability +- link: /llm_observability/improve/experiments/ + tag: Documentación + text: Experimentos de LLM +- link: /llm_observability/investigate/evaluations/evaluation_developer_guide + tag: Guía + text: 'Guía para desarrolladores de evaluación: cree evaluadores personalizados' +- link: https://www.datadoghq.com/blog/bits-evals/ + tag: blog + text: Mejore la calidad de los agentes de IA con Bits Evals +- link: https://github.com/datadog-labs/agent-skills + tag: GitHub + text: datadog-labs/agent-skills +title: Analizar aplicaciones de LLM con habilidades de Claude Code +--- +## Descripción general {#overview} + +Datadog proporciona un conjunto de habilidades de [Claude Code][1] que llevan el análisis de Agent Observability directamente a su flujo de trabajo de desarrollo. En lugar de navegar por los dashboards manualmente, puede invocar estas habilidades desde una sesión de Claude Code para clasificar sesiones, diagnosticar fallas, comparar experimentos, generar código de experimento en Python y realizar el bootstrap de evaluadores, todo contra sus datos de producción en vivo. + +| Habilidad | Qué hace | +|-------|-------------| +| `/agent-observability-session-classify` | Clasifique si la intención del usuario fue satisfecha en una sesión, traza o lote de sesiones de una ml_app | +| `/agent-observability-trace-rca` | Análisis de causa raíz en trazas de LLM de producción fallidas | +| `/agent-observability-experiment-analyzer` | Analice y compare resultados de experimentos de LLM | +| `/agent-observability-experiment-py-bootstrap` | Genere código de experimento en Python utilizando el SDK `ddtrace.llmobs`. Introspecciona su aplicación para conectar un `task_fn` real (sin marcador de posición), autodescubre credenciales desde `.env` y acepta un `--purpose` de forma libre que dirige la selección del evaluador | +| `/agent-observability-eval-bootstrap` | Genere código de evaluador a partir de trazas, publique evaluadores de LLM-judge en línea o muestree trazas en un conjunto de datos para su uso en un experimento | +| `/agent-observability-eval-pipeline` | Pipeline guiado de seis fases desde trazas de producción hasta evaluadores, conjuntos de datos, experimentos y análisis. Detenga antes de tiempo con `--stop-after`, vuelva a ingresar a mitad del flujo con `--start-at`. | + +Las habilidades producen resultados estructurados y accionables (informes de RCA con propuestas de corrección antes/después, código de evaluador generado, comparaciones de experimentos) que puede pasar directamente a un agente de codificación para aplicar correcciones a su aplicación. Cuando Claude Code tiene acceso a su base de código, puede buscar el prompt del sistema, las definiciones de herramientas o la lógica de enrutamiento relevantes y proponer diffs específicos sin abandonar la sesión. + +## Configuración {#setup} + +### Requisitos previos {#prerequisites} + +- [Claude Code][1] instalado y autenticado +- Al menos una aplicación LLM [instrumentada con Agent Observability][2] y que produzca trazas +- Un data backend: ya sea el Datadog MCP server **o** la `pup` CLI + +### Instale las habilidades {#install-the-skills} + +Las habilidades están publicadas en el repositorio [agent-skills][6]. Instálelas con el siguiente comando: + +```shell +npx skills add datadog-labs/agent-skills/agent-observability --full-depth -y +``` + +Las habilidades están disponibles en cualquier sesión de Claude Code después de instalarlas. + +### Datadog MCP server {#datadog-mcp-server} + +Para utilizar la opción del Datadog MCP server, conecte el Agent Observability MCP server a su sesión de Claude Code: + +{{< site-region region="us,us3,us5,eu,ap1,ap2,uk1" >}} +
claude mcp add --scope user --transport http datadog-llmo-mcp \
+  '{{< region-param key="mcp_server_endpoint" >}}?toolsets=llmobs,core'
+{{< /site-region >}} + +{{< site-region region="gov,gov2" >}} +
Este producto no es compatible con el sitio seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} + +Todas las habilidades detectan el MCP server automáticamente al iniciarse y lo utilizan en todo momento. + +### Opción B: pup CLI {#option-b-pup-cli} + +Si prefiere no utilizar el servidor MCP, las habilidades también se ejecutan a través de [`pup`][5], la CLI interna de Datadog. Instale `pup` y autentíquese: + +```shell +pup auth login +``` + +Cada habilidad detecta al iniciarse si el MCP server está disponible; si no, busca `pup` y cambia al modo pup automáticamente. También puede forzar el modo pup explícitamente pasando `--backend pup` a cualquier invocación de habilidad. + +En el modo pup, todas las llamadas a la Datadog API se realizan a través de subcomandos de `pup llm-obs` en lugar de herramientas MCP. La salida y el flujo de trabajo son idénticos. + +## Habilidades {#skills} + +### Clasificar sesiones y trazas {#classify-sessions-and-traces} + +`/agent-observability-session-classify` evalúa si la intención del usuario fue satisfecha en una interacción determinada. Funciona en tres modos dependiendo de lo que usted proporcione: + +| Modo | Invocar con | Usar cuando | +|------|-------------|----------| +| Sesión | `session_id` | Evaluación de una sesión específica | +| Traza | `trace_id` | Evaluación de una sola traza de Agent Observability | +| Aplicación | `ml_app` | Muestreo y clasificación de un lote de sesiones o trazas recientes | + +La habilidad extrae de hasta tres fuentes de señales, y la precisión mejora cuanto más datos tenga a su disposición: + +- **Trazas de Agent Observability** — el árbol de tramos completo, el contenido de la conversación, los resultados de llamadas a herramientas y los veredictos de jueces de evaluación. Siempre disponible. +- **Señales de comportamiento de RUM** — vistas de página, acciones personalizadas, tiempo de permanencia y eventos de retroalimentación explícita que confirman o contradicen lo que muestra la traza. Disponible cuando RUM está instrumentado para su aplicación. +- **Audit Trail** — eventos de escritura confirmados por el servidor (paneles creados, monitores modificados, cuadernos eliminados) que prueban si las acciones del asistente realmente se llevaron a cabo. La señal más autorizada cuando la sesión involucró la creación o edición de activos. + +La habilidad devuelve un `yes / partial / no` veredicto compacto con una razón de una oración de forma predeterminada. Agregue `verbose: true` para un informe completo en formato markdown. + +**Ejemplos:** + +``` +/agent-observability-session-classify session_id=abc-123 +/agent-observability-session-classify trace_id=def-456 +/agent-observability-session-classify ml_app=my-chatbot --timeframe now-7d +``` + +### Diagnostique fallas con análisis de causa raíz {#diagnose-failures-with-root-cause-analysis} + +`/agent-observability-trace-rca` recorre el árbol de tramos de trazas fallidas para identificar por qué su aplicación LLM está produciendo resultados deficientes. Selecciona el mejor modo de análisis según las señales disponibles: veredictos de evaluación de juez LLM (la señal más fuerte), errores de tiempo de ejecución o anomalías estructurales como valores atípicos de latencia y decisiones de bucle de agente. + +La habilidad muestrea los tramos fallidos, los agrupa en una taxonomía de fallas y compila un informe de RCA estructurado con categorías de causa raíz, evidencia de respaldo y propuestas de solución concretas. Cada corrección incluye el texto o código real de la traza — extractos del prompt del sistema, formas de argumentos de herramientas, lógica de enrutamiento — con un `BEFORE` / `AFTER` que muestra exactamente qué cambiar. + +Cuando Claude Code tiene acceso a su base de código, la habilidad busca los archivos fuente relevantes y propone diferencias que puede aplicar de inmediato. Para deficiencias en el prompt del sistema, uso indebido de herramientas o errores de enrutamiento, esto significa pasar del diagnóstico a una solicitud de extracción (pull request) sin abandonar la sesión. + +**Ejemplos:** + +``` +/agent-observability-trace-rca ml_app=my-chatbot +/agent-observability-trace-rca ml_app=my-chatbot eval_name=faithfulness --timeframe now-24h +``` + +### Analice y compare experimentos {#analyze-and-compare-experiments} + +`/agent-observability-experiment-analyzer` recupera los resultados del experimento y muestra qué cambió entre un candidato y un baseline. Funciona para un solo experimento (análisis exploratorio) o un par (análisis comparativo). + +La habilidad resalta qué métricas mejoraron o empeoraron, qué categorías de eventos cambiaron y dónde el candidato tuvo un rendimiento inferior, para que pueda tomar una decisión de promoción con confianza. + +**Ejemplos** + +``` +/agent-observability-experiment-analyzer experiment_id=exp-123 +/agent-observability-experiment-analyzer experiment_id=exp-456 baseline_id=exp-123 +``` + +### Genere código de experimento con el SDK de Python {#generate-experiment-code-with-the-python-sdk} + +`/agent-observability-experiment-py-bootstrap` emite un script `.py` autónomo o un notebook de Jupyter `.ipynb` que utiliza el `ddtrace.llmobs` SDK y coincide con los [reference notebooks][7] canónicos. + +El conjunto de datos puede ser un JSON `DatasetRecordRaw[]` local (integrado en el archivo), un CSV (cargado en tiempo de ejecución a través de `LLMObs.create_dataset_from_csv`), un conjunto de datos de Datadog existente por nombre (`LLMObs.pull_dataset`), o — de forma predeterminada — una pequeña muestra en línea de 3 registros. + +**Todas las flags a continuación son opcionales.** Invoque `/agent-observability-experiment-py-bootstrap` sin argumentos y la habilidad solicitará lo que necesita y emitirá un archivo ejecutable con la muestra predeterminada de 3 registros. + +| Opción | Requerido | Predeterminado | Descripción | +|--------|----------|---------|-------------| +| `--purpose` | No | se solicita si no se establece o no se puede inferir | Cadena de forma libre que describe lo que valida el experimento. Sesga la clasificación de introspección, la forma de retorno del wrapper y la semántica del evaluador | +| `--format` | No | `py` | `py` o `ipynb` | +| `--dataset` | No | inline 3-record sample | Local `DatasetRecordRaw[]` JSON o CSV. Mutuamente excluyente con `--dataset-name` | +| `--dataset-name` | No | none | Existing Datadog dataset to fetch at runtime via `LLMObs.pull_dataset`. Mutuamente excluyente con `--dataset` | +| `--dataset-version` | No | latest | Fijar una versión específica al usar `--dataset-name` | +| `--project-name` | No | `experiment-` inferred from codebase | Datadog project name shown in the Experiments UI | +| `--evaluator-style` | No | `function` | `function` / `class` / `remote`. Elige la superficie; `--purpose` elige la semántica | +| `--task-source` | No | auto de inspección | Explícito `:` envolver como `task_fn` | +| `--placeholder-task` | No | desactivado | Omitir la introspección y emitir un marcador de posición `# TODO(user)` genérico | +| `--app-root` | No | inferido | Restringe el escaneo de introspección a este directorio | +| `--env-file` | No | ninguno | Ruta `.env` explícita. Integrado en el archivo generado como `ENV_FILE_OVERRIDE` | +| `--jobs` | No | `10` | Concurrencia pasada a `experiment.run(jobs=N)` | +| `--output` | No | `./experiments/experiment.` | Ruta del archivo de salida | + +**Ejemplos** + +``` +/agent-observability-experiment-py-bootstrap --purpose "validate output accuracy" +/agent-observability-experiment-py-bootstrap --purpose "test tool selection on ambiguous queries" --dataset ./data/qa.json +/agent-observability-experiment-py-bootstrap --dataset-name qa_v3 --project-name customer-qa +/agent-observability-experiment-py-bootstrap --task-source mymodule.handlers:respond --evaluator-style remote +/agent-observability-experiment-py-bootstrap --placeholder-task --format ipynb +``` + +### Inicializa evaluadores a partir de datos de traza {#bootstrap-evaluators-from-trace-data} + +`/agent-observability-eval-bootstrap` analiza trazas de producción de una ml_app (o un informe de RCA ya en contexto) y propone un conjunto de evaluadores que detectarían los modos de falla observados. Genera uno de cuatro artefactos: + +| Mode | Flag | Output | +|------|------|--------| +| Código SDK (predeterminado) | — | Clases de `BaseEvaluator`Python `LLMJudge` listas para incluir en un [Experimento de LLM][3] | +| Especificación JSON | `--data-only` | Especificación de evaluador independiente del marco, adecuada para revisión o implementación manual | +| Jueces en línea | `--publish` | Evaluadores LLM-judge publicados directamente en Datadog y habilitados en su ml_app | +| Emisión de conjunto de datos | `--emit-dataset ` | Un `DatasetRecordRaw[]` archivo JSON muestreado a partir de trazas de producción, con formato para `LLMObs.create_dataset(records=...)`. Omite el flujo de trabajo del evaluador por completo; este modo produce un conjunto de datos, no evaluadores | + +Los primeros tres modos comparten el mismo flujo de trabajo de evaluador-propuesta y difieren solo en cómo se materializa la suite. El cuarto modo (`--emit-dataset`) es independiente: muestrea tramos raíz para el `ml_app` (filtrado a `@status:ok`), extrae `input_data` y `expected_output` por registro, ejecuta una limpieza de PII en los valores de cadena y escribe un archivo JSON que puede publicar en Datadog como un conjunto de datos y luego ejecutar un experimento contra él. Los `tags` por registro se normalizan automáticamente (cadenas simples envueltas como `tag:`) para que `Dataset.append()` no rechace el registro. El campo `expected_output` está documentado como la **línea base de comportamiento de producción**, no como la verdad fundamental; es útil para experimentos de tipo regresión (¿mi refactorización cambia los resultados observados?) antes de ser promovido a un conjunto de oro etiquetado. + +**Ejemplos** + +``` +/agent-observability-eval-bootstrap ml_app=my-chatbot +/agent-observability-eval-bootstrap ml_app=my-chatbot --publish +/agent-observability-eval-bootstrap ml_app=my-chatbot --data-only +/agent-observability-eval-bootstrap ml_app=my-chatbot --emit-dataset ./datasets/my_chatbot_seed.json --trace-limit 25 +``` + +### Ejecute el pipeline de extremo a extremo {#run-the-end-to-end-pipeline} + +`/agent-observability-eval-pipeline` encadena las subhabilidades de observabilidad de agentes en un flujo de trabajo supervisado y narrado único que recorre desde las trazas de producción hasta los evaluadores, conjuntos de datos, experimentos y análisis. Cada fase tiene el mismo formato: un banner que nombra la entidad que se está produciendo, un bloque pedagógico que explica su propósito, la acción (una llamada a una subhabilidad o un pequeño paso ejecutable) y un punto de control que espera su confirmación. Es el punto de partida recomendado cuando no tiene evaluadores o experimentos existentes y desea un recorrido determinista. + +``` +Phase 1: Classify ml_app traces → agent-observability-session-classify (ml_app mode) +Phase 2: Root cause analysis → agent-observability-trace-rca +Phase 3: Bootstrap evaluators → agent-observability-eval-bootstrap +Phase 4: Create + publish dataset → agent-observability-eval-bootstrap --emit-dataset + LLMObs.create_dataset(records=...) +Phase 5: Generate + run experiment → agent-observability-experiment-py-bootstrap + python + (with an in-phase review beat between codegen and run) +Phase 6: Analyze experiment → agent-observability-experiment-analyzer +``` + +Cada fase tiene un nombre corto canónico: el mismo valor aceptado por `--start-at` y `--stop-after`. Utilice estos nombres siempre que necesite referirse a una sola fase sin ambigüedades (por ejemplo, en scripts, en chats con compañeros de equipo o en tickets de soporte): + +| # | Título de la fase | Nombre de la etapa | Subhabilidad invocada | Resumen | Artefacto de salida | +|---|-------------|----------------------------------------------------------------------------------------|-------------------|---------|-----------------| +| 1 | Clasificar trazas de ml_app | `classify` | `/agent-observability-session-classify` (modo ml_app) | MCP `search_llmobs_spans` muestrea los tramos raíz recientes para el `ml_app`. Cada tramo se clasifica como éxito / parcial / falla y se agrupa en patrones comunes. | Resumen de clasificación + bloques por unidad | +| 2 | Análisis de causa raíz | `rca` | `/agent-observability-trace-rca` | MCP `search_llmobs_spans` extrae trazas completas para los tramos fallidos identificados en la Fase 1. Se recorre el árbol de traza para atribuir cada falla a un tramo raíz y un modo de falla. | Informe de RCA con taxonomía de modos de falla y causas raíz | +| 3 | Inicialice evaluadores | `eval-bootstrap` | `/agent-observability-eval-bootstrap` | Razonamiento local sobre la RCA de la Fase 2: sin llamadas MCP. Emite código de evaluador de Python (`sdk_code`), una especificación JSON agnóstica al marco (`data_only`), o publica evaluadores LLM-judge en línea directamente en Datadog a través de la API pública (`publish`). | Suite de evaluadores (`sdk_code` / `data_only` / `publish` modo) | +| 4 | Crear y publicar conjunto de datos | `dataset` | `/agent-observability-eval-bootstrap --emit-dataset` + `LLMObs.create_dataset(records=...)` | MCP `search_llmobs_spans` muestrea tramos raíz, extrae `(input_data, expected_output)` pares, limpia PII y escribe un archivo JSON local. El subpaso de publicación luego llama a `LLMObs.create_dataset()` a través del SDK de ddtrace (no MCP) para enviar el conjunto de datos a Datadog. | Local `DatasetRecordRaw[]` JSON + conjunto de datos de Datadog publicado (nombre, versión, URL) | +| 5 | Generar y ejecutar experimento | `experiment` | `/agent-observability-experiment-py-bootstrap` + `python ` (con un `run` / `edit` / `stop` ritmo de revisión entre la generación de código y la ejecución) | Principalmente local: la habilidad introspecciona su aplicación en busca de sitios de llamadas a LLM (decoradores de OpenAI / Anthropic / LangChain / LiteLLM / LlamaIndex / Bedrock / Gemini) y emite un archivo de Python autónomo que conecta `task_fn` a un punto de entrada real. Una llamada MCP `list_llmobs_evals` se dispara al inicio como una baliza de conectividad + telemetría. El archivo generado utiliza el SDK de ddtrace en tiempo de ejecución; no hay llamadas MCP durante la ejecución en sí. | Generado `.py` o `.ipynb` + ejecución de experimento con `experiment.url` | +| 6 | Analizar experimento | `analyze` | `/agent-observability-experiment-analyzer` | Usuario intensivo de MCP: `get_llmobs_experiment_summary` para métricas generales, `get_llmobs_experiment_metric_values` para puntuaciones por registro, `list_llmobs_experiment_events` + `get_llmobs_experiment_event` para profundizar en filas individuales, y `get_llmobs_experiment_dimension_values` para desgloses de segmentos. Sintetiza los hallazgos en un informe estructurado. | Informe de análisis con desgloses de métricas, rendimiento de segmentos y próximos experimentos recomendados | + +Las fases 4 y 5 son las únicas dos que ejecutan código en su máquina; el resto son de solo lectura o escriben archivos generados en `--output-dir`. El comportamiento clásico del pipeline de evaluación de tres fases (clasificar → RCA → solo evaluadores bootstrap) se conserva pasando `--stop-after eval-bootstrap`. La fase 5 se pausa entre la generación de código y la ejecución para que pueda revisar el archivo de experimento generado antes de que se consuman tokens del proveedor: escriba `run` para ejecutar, `edit` para pausar y ajustar, o `stop` para salir de forma limpia. + +**Entre y salga en cualquier fase.** El pipeline persiste la salida principal de cada fase (resumen de clasificación, informe de RCA, suite de evaluadores, conjunto de datos, nombre del conjunto de datos publicado, archivo de experimento, ejecución de experimento, informe del analizador) en `/state/0N-.{md, json}` antes de que se muestre cada punto de control. Esto significa: + +- **`stop`** en cualquier punto de control (o `--stop-after ` desde la parte superior) finaliza la ejecución de forma limpia, dejando un artefacto reingresable en el disco. +- **`--start-at `** carga el archivo de estado de cada fase anterior (o acepta un override flag si proporcionó uno) y salta directamente a la fase nombrada. Puede reanudar horas o días después, o saltar directamente a "solo volver a analizar este experimento" sin volver a ejecutar nada anterior. + +Vocabulario de puntos de control en cada fase: `continue` avanza, `stop` sale limpiamente, `redo` vuelve a ejecutar la fase actual (con notas de ajuste opcionales adjuntas), `back` retrocede una fase. Cualquier otra entrada se trata como ajuste. + +**Solo se requiere ``.** Cada flag a continuación es opcional: la habilidad elige valores predeterminados sensatos para cada una. La invocación mínima es `/agent-observability-eval-pipeline `; el resto de la tabla es para cuando desea anular un valor predeterminado, reanudar a mitad del flujo o fijar una ubicación de salida específica. + +| Opción | Requerido | Predeterminado | Descripción | +|--------|----------|---------|-------------| +| `` | **Sí** | — (requerido) | La aplicación LLM instrumentada para incorporar / evaluar contra | +| `--project-name` | No | derivado de `pyproject.toml` / `setup.cfg` / `setup.py` / `package.json` / cwd | El proyecto de Datadog en el que el pipeline escribe conjuntos de datos y experimentos. Mostrado en la verificación previa y creado de forma diferida por `LLMObs.enable(project_name=...)` en la Fase 4 | +| `--timeframe` | No | `now-7d` | Ventana de retrospectiva para la clasificación de la Fase 1 y el muestreo de conjuntos de datos de la Fase 4 | +| `--trace-limit` | No | `20` | Límite de muestreo para la Fase 4. La Fase 1 utiliza internamente `min(20, --trace-limit)` para la muestra de clasificación | +| `--format` | No | `py` | Pasado a `agent-observability-experiment-py-bootstrap` en la Fase 5: `py` (script) o `ipynb` (notebook) | +| `--evaluator-style` | No | `function` | Pasado a la Fase 3 y la Fase 5: `function`, `class` o `remote` | +| `--data-only` | No | desactivado | Paso a través de la Fase 3: emitir una especificación de evaluador JSON independiente del marco en lugar de código del SDK de Python | +| `--publish` | No | desactivado | Paso a través de la Fase 3: publicar evaluadores de jueces LLM en línea en Datadog | +| `--stop-after` | No | `analyze` (ejecutar todo) | Detener después de que se complete la fase nombrada. Acepta: `classify`, `rca`, `eval-bootstrap` *(coincide con el comportamiento clásico de 3 fases)*, `dataset`, `experiment`, `analyze` | +| `--start-at` | No | `classify` (comenzar desde el principio) | Omitir fases anteriores y comenzar en la fase nombrada. Mismo vocabulario que `--stop-after`. Carga automáticamente artefactos de fases anteriores desde `/state/` | +| `--classification-summary` | No | carga automática desde `state/01-classification.md` | Anular la salida de la Fase 1 que consume la Fase 2 (usado con `--start-at rca` o posterior) | +| `--rca-report` | No | carga automática desde `state/02-rca-report.md` | Anular la salida de la Fase 2 que consume la Fase 3 | +| `--dataset-file` | No | carga automática desde `state/04-published-dataset.json` el campo `dataset_file` | El JSON `DatasetRecordRaw[]` local. Utilizado por el paso de publicación de la Fase 4 al volver a publicar sin volver a muestrear | +| `--dataset-name` | No | carga automática desde `state/04-published-dataset.json` | Nombre del conjunto de datos de Datadog publicado al que la Fase 5 conecta el experimento | +| `--experiment-file` | No | carga automática desde `state/05-experiment-run.json` | El archivo de experimento generado. Cuando está presente, la Fase 5 omite la generación de código y va directamente al paso de revisión → ejecutar | +| `--experiment-id` / `--experiment-url` | No | carga automática desde `state/05-experiment-run.json` | El experimento de Datadog que la Fase 6 analiza (mutuamente excluyentes) | +| `--app-root` | No | resuelto desde cwd / `pyproject.toml` etc. | Restringe la introspección de la función de tarea de la Fase 5 a este árbol de directorios | +| `--env-file` | No | ninguno (el descubrimiento automático recorre las ubicaciones estándar) | Ruta `.env` explícita para la carga de credenciales; mostrada en la verificación previa | +| `--output-dir` | No | `./experiments` | Donde se escriben el JSON del conjunto de datos, el script de publicación, el archivo de experimento generado y el directorio `state/` | + +**Ejemplos** + +``` +# Full six-phase walkthrough for a brand new ml_app +/agent-observability-eval-pipeline my-chatbot --project-name my-chatbot + +# Organize the dataset and experiment under a specific Datadog project +# (the project is created lazily — no need to pre-create it in the UI) +/agent-observability-eval-pipeline my-chatbot --project-name customer-qa-eval + +# Classic three-phase eval-pipeline behavior — preserves backward compatibility +/agent-observability-eval-pipeline my-chatbot --stop-after eval-bootstrap + +# Resume from where a previous run stopped +/agent-observability-eval-pipeline my-chatbot --start-at experiment + +# Re-analyze a previous experiment run without re-running it +/agent-observability-eval-pipeline my-chatbot --start-at analyze --experiment-id + +# Run a single phase in isolation +/agent-observability-eval-pipeline my-chatbot --start-at dataset --stop-after dataset +``` + +> **Nombre del proyecto** — si se omite `--project-name`, la habilidad lo deriva automáticamente de su base de código (en orden: `pyproject.toml` → `setup.cfg` → `setup.py` → `package.json` → nombre base de cwd), recurriendo a `experiment-sdk-default`. El nombre resuelto se muestra en la salida de la verificación previa antes de que se ejecute cualquier fase, por lo que puede confirmarlo o anularlo sin volver a invocar. El proyecto de Datadog en sí es creado de forma diferida por `LLMObs.enable(project_name=...)` cuando la Fase 4 publica el conjunto de datos; nunca necesita crearlo previamente en la interfaz de usuario. + +## Flujo de trabajo típico {#typical-workflow} + +Si es nuevo en la evaluación de una aplicación LLM, el flujo recomendado es: + +1. **Ejecute la pipeline** para recorrer desde las trazas de producción hasta los evaluadores, un conjunto de datos semilla, un experimento y el análisis: + ``` + /agent-observability-eval-pipeline --project-name + ``` + Para detenerse en la salida clásica solo de evaluador (sin conjunto de datos ni experimento), pase `--stop-after eval-bootstrap`. Para reanudar una ejecución anterior, pase `--start-at `: la canalización recarga el estado anterior desde `/state/` y continúa desde allí. + +2. **Aplique correcciones.** El informe de RCA producido en la Fase 2 incluye propuestas de corrección específicas de antes/después basadas en evidencia de trazas. Pase el informe a un agente de codificación (o actúe directamente sobre él) para corregir los prompts del sistema, las definiciones de herramientas o la lógica de enrutamiento en su base de código. + +3. **Ejecute un experimento sin conexión** utilizando los evaluadores generados frente a un conjunto de datos etiquetado para validar su calidad antes de habilitarlos en producción. Consulte la [Guía para desarrolladores de evaluación][4]. + +4. **Publique evaluadores en línea** una vez que los evaluadores estén validados. Ejecutar `/agent-observability-eval-bootstrap` con `--publish` crea evaluadores de juez LLM en línea en Datadog que se ejecutan automáticamente en sus trazas de producción en tiempo real — no se requieren cambios de código: + ``` + /agent-observability-eval-bootstrap --publish + ``` + +5. **Haga un seguimiento e itere.** A medida que su aplicación evolucione, vuelva a ejecutar `/agent-observability-trace-rca` y `/agent-observability-eval-bootstrap` para detectar nuevos modos de falla y mantener actualizado su conjunto de evaluadores. + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://claude.ai/code +[2]: /es/llm_observability/setup/ +[3]: /es/llm_observability/improve/experiments/ +[4]: /es/llm_observability/investigate/evaluations/evaluation_developer_guide +[5]: https://datadoghq.atlassian.net/wiki/spaces/BITSAI/pages/5226692942/pup+CLI +[6]: https://github.com/datadog-labs/agent-skills +[7]: https://github.com/DataDog/llm-observability/tree/main/experiments/notebooks \ No newline at end of file diff --git a/hugo/content/es/llm_observability/instrument/agentic/_index.md b/hugo/content/es/llm_observability/instrument/agentic/_index.md new file mode 100644 index 00000000000..eb8c7cb8a9b --- /dev/null +++ b/hugo/content/es/llm_observability/instrument/agentic/_index.md @@ -0,0 +1,104 @@ +--- +aliases: +- /es/llm_observability/instrumentation/agentic/ +title: Instrumentación agéntica +--- +## Directrices {#guidelines} + +**Importante**: Siga **todas** las directrices enumeradas aquí al seguir hipervínculos a otros pasos. + +1. Solo agregue código relacionado con Datadog Agent Observability y con Datadog tracer. A menos que sea para fines de instrumentación manual, no modifique código no relacionado. +2. Si se ejecuta en un monorepo o proyecto con múltiples servicios u objetivos de instrumentación, confirme con el usuario qué servicio o subproyecto debe instrumentarse con Agent Observability. +3. Instale los SDK de Datadog más recientes. Si ya está instalado, verifique con el usuario si está bien actualizar la dependencia. + +## Requisitos previos {#pre-requisites} + +1. Se requiere una Datadog API Key para enviar datos de Agent Observability a Datadog. Sin una clave de API, el usuario no recibirá datos de Agent Observability, por lo que este es un **requisito obligatorio**. Si el usuario aún no ha proporcionado una y no desea hacerlo, continúe instrumentando su aplicación, asegurándose de indicar explícitamente al final que debe configurarla y señálele dónde puede hacerlo. +2. Determine el lenguaje de programación y el framework que se utilizan en la aplicación para instrumentar. Esto es importante para instrumentar correctamente la aplicación. + +## Variables de entorno {#environment-variables} + +Todas las variables de entorno deben configurarse _ya sea_ antes de que se inicie el proceso principal de la aplicación, o como las primeras líneas del punto de entrada de la aplicación. + +Estas variables de entorno no deben estar integradas en línea. Más bien, deben leerse directamente del proceso. + +- Para el desarrollo local, configúrelas en un archivo `.env` apropiado, o similar, para la aplicación y el lenguaje en el que está escrita, asegurándose de que se completen cuando se inicie el Agent Observability SDK (consulte las guías específicas del lenguaje para cada uno) +- Para el desarrollo no local, informe también al usuario qué variables de entorno necesitará configurar + +### Clave de API {#api-key} + +Esto es **crítico**. Configure la clave de API con la siguiente variable de entorno. + +```bash +DD_API_KEY= +``` + +### Habilite Agent Observability {#enable-agent-observability} + +Esto es **crítico**. Establezca las siguientes variables de entorno para habilitar correctamente Agent Observability. + +```bash +DD_LLMOBS_ENABLED=true +DD_LLMOBS_AGENTLESS_ENABLED=true +``` + +### Nombre de la aplicación de Agent Observability {#agent-observability-application-name} + +Esto es **altamente recomendado**. Si el usuario proporcionó un nombre de aplicación (o `DD_LLMOBS_ML_APP`) como parte del prompt inicial, utilice ese valor. De lo contrario, utilice un nombre lógico basado en el nombre de la carpeta, el repositorio o el proyecto. + +```bash +DD_LLMOBS_ML_APP= +``` + +### Sitio de Datadog {#datadog-site} + +Esto es **opcional**. Establezca el sitio de Datadog, correspondiente al centro de datos asociado con la clave de API del usuario. Si no se proporciona (posiblemente a través de `DD_SITE`), informe al usuario que se utilizará el sitio de `datadoghq.com`. _Si_ se proporciona un valor, establézcalo como una variable de entorno. + +```bash +DD_SITE= +``` + +## Instrumente la aplicación {#instrument-the-application} + +Siga las instrucciones para el lenguaje detectado: + +| Lenguaje | Instrucciones | +|----------|-------------| +| Python | [Instrumentación agéntica de aplicaciones Python](/llm_observability/instrument/agentic/python.md) | +| Node.js | [Instrumentación agéntica de aplicaciones Node.js](/llm_observability/instrument/agentic/nodejs.md) | +| Java | [Instrumentación agéntica de aplicaciones Java](/llm_observability/instrument/agentic/java.md) | +| OpenTelemetry | [Instrumentación de OpenTelemetry](/llm_observability/instrument/otel_instrumentation.md) | + +## Instrumente los prompts y ofrezca Prompt Management {#instrument-prompts-and-offer-prompt-management} + +Prompt Tracking es parte de la instrumentación predeterminada de Agent Observability. Identifique el límite de construcción del prompt para cada llamada de LLM seleccionada y conserve la plantilla del prompt por separado de sus variables dinámicas. + +1. Si la solicitud del usuario ya especifica un ID de prompt gestionado por Datadog, siga la [guía de integración agentic de Prompt Management](/llm_observability/instrument/agentic/prompt_management.md). No vuelva a preguntar si desea utilizar Prompt Management. +2. De lo contrario, identifique los prompts de la aplicación y las variables dinámicas utilizadas para darles formato. Conserve el proveedor, el modelo, el contenido del prompt y el comportamiento de la aplicación existentes. +3. Para una aplicación de Python compatible, indique al usuario qué prompts identificó y pregúntele si desea gestionar esos prompts con Datadog. Si acepta, siga la [guía de integración agentic de Prompt Management](/llm_observability/instrument/agentic/prompt_management.md) para promover los prompts locales seleccionados y reemplazar su construcción local con la recuperación de prompts gestionados. +4. Si el usuario rechaza Prompt Management, o si el lenguaje de la aplicación no es compatible, instrumente los prompts seleccionados con metadatos de prompt estructurados siguiendo las [instrucciones de Prompt Tracking](/llm_observability/instrument/prompt_tracking). No añada la recuperación de prompts en tiempo de ejecución. + +Cuando Prompt Management reemplace un prompt local, utilice el seguimiento automático del prompt gestionado en lugar de adjuntar metadatos de prompt estructurados duplicados. + +## Visualización de trazas {#viewing-traces} + +Informe al usuario que puede acceder a su aplicación y visualizar los datos en Datadog. + +**Obligatorio**: proporcione un enlace permanente donde el usuario pueda ver los datos asociados con esta aplicación. Esto tomará la forma de + +``` +https://app.{dd_site}/llm/applications?query=@ml_app:{application_name} +``` + +Complete los valores proporcionados: +1. `dd_site` - si se proporcionó el valor para [sitio de Datadog](#datadog-site), utilice ese valor. De lo contrario, utilice `datadoghq.com`. +2. `application_name` - utilice el valor proporcionado o inferido de la sección [Nombre de la aplicación de Agent Observability](#llm-observability-application-name). + +## Instrucciones específicas del lenguaje {#language-specific-instructions} + +{{< whatsnext desc="Instrumente una aplicación con un coding agent:" >}} + {{< nextlink href="/llm_observability/instrument/agentic/python" >}}Instrumentación agéntica de aplicaciones Python{{< /nextlink >}} + {{< nextlink href="/llm_observability/instrument/agentic/nodejs" >}}Instrumentación agéntica de aplicaciones Node.js{{< /nextlink >}} + {{< nextlink href="/llm_observability/instrument/agentic/java" >}}Instrumentación agéntica de aplicaciones Java{{< /nextlink >}} + {{< nextlink href="/llm_observability/instrument/agentic/prompt_management" >}}Integración agéntica de Prompt Management{{< /nextlink >}} +{{< /whatsnext >}} \ No newline at end of file diff --git a/hugo/content/es/llm_observability/investigate/evaluations/llm_as_a_judge_evaluations/connect_to_account.md b/hugo/content/es/llm_observability/investigate/evaluations/llm_as_a_judge_evaluations/connect_to_account.md new file mode 100644 index 00000000000..7fa1cdaa133 --- /dev/null +++ b/hugo/content/es/llm_observability/investigate/evaluations/llm_as_a_judge_evaluations/connect_to_account.md @@ -0,0 +1,140 @@ +--- +aliases: +- /es/llm_observability/evaluations/custom_llm_as_a_judge_evaluations/connect_to_account/ +- /es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/connect_to_account/ +description: Cómo conectarse a su cuenta de proveedor de LLM para admitir evaluaciones + basadas en LLM +further_reading: +- link: /llm_observability/investigate/evaluations/llm_as_a_judge_evaluations + tag: Documentación + text: Obtenga información sobre las evaluaciones personalizadas basadas en LLM +title: Conecte su cuenta de proveedor de LLM +--- +## Conecte su cuenta de proveedor de LLM {#connect-your-llm-provider-account} + +Configure el proveedor de LLM que desea utilizar para las evaluaciones de tipo bring-your-own-key (BYOK). Solo tiene que completar este paso una vez. + +{{< tabs >}} +{{% tab "OpenAI" %}} + +
Si está sujeto a HIPAA, es responsable de asegurarse de conectarse únicamente a una cuenta de OpenAI que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Conecte su cuenta de OpenAI a Agent Observability con su clave de API de OpenAI. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. Seleccione {{< ui >}}Connect{{< /ui >}} en el mosaico de OpenAI. +1. Siga las instrucciones en el mosaico. + - Proporcione su clave de API de OpenAI. Asegúrese de que esta clave tenga el permiso {{< ui >}}write{{< /ui >}} para {{< ui >}}model capabilities{{< /ui >}}. +1. Habilite {{< ui >}}Use this API key to evaluate your LLM applications{{< /ui >}}. +1. Agent Observability requiere que el punto de conexión de API `complete/chat` esté disponible para el modelo seleccionado. Consulte la [página de descripción general de modelos de OpenAI][3] para obtener detalles sobre qué modelos admiten este punto de conexión. + +{{< img src="llm_observability/configuration/openai-tile.png" alt="El mosaico de configuración de OpenAI en Agent Observability. Enumera las instrucciones para configurar OpenAI y proporcionar su clave de API de OpenAI." style="width:100%;" >}} + +Agent Observability no admite [residencia de datos][2] para OpenAI. + +[1]: https://app.datadoghq.com/llm/settings/integrations +[2]: https://platform.openai.com/docs/guides/your-data#which-models-and-features-are-eligible-for-data-residency +[3]: https://developers.openai.com/api/docs/models +{{% /tab %}} +{{% tab "Azure OpenAI" %}} + +
Si está sujeto a HIPAA, usted es responsable de asegurarse de conectarse únicamente a una cuenta de Azure OpenAI que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Conecte su cuenta de Azure OpenAI a Agent Observability con su clave de API de OpenAI. Datadog recomienda encarecidamente utilizar el modelo `GPT-4o mini` para las evaluaciones. La versión del modelo seleccionada debe admitir [salida estructurada][8] y la API de Chat Completions debe estar disponible. Consulte una [lista completa de modelos compatibles][9]. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. Seleccione {{< ui >}}Connect{{< /ui >}} en el mosaico de Azure OpenAI. +1. Siga las instrucciones en el mosaico. + - Proporcione su clave de API de Azure OpenAI. Asegúrese de que esta clave tenga el permiso {{< ui >}}write{{< /ui >}} para {{< ui >}}model capabilities{{< /ui >}}. + - Proporcione el nombre del recurso, el ID de implementación y la versión de API para completar la integración. + +{{< img src="llm_observability/configuration/azure-openai-tile.png" alt="El mosaico de configuración de Azure OpenAI en Agent Observability. Enumera las instrucciones para configurar Azure OpenAI y proporcionar su clave de API, nombre del recurso, ID de implementación y versión de API." style="width:100%;" >}} + +[1]: https://app.datadoghq.com/llm/settings/integrations +[8]: https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/structured-outputs +[9]: https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure?tabs=global-standard-aoai%2Cglobal-standard&pivots=azure-openai +{{% /tab %}} +{{% tab "Anthropic" %}} + +
Si está sujeto a HIPAA, usted es responsable de asegurarse de conectarse únicamente a una cuenta de Anthropic que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Conecte su cuenta de Anthropic a Agent Observability con su clave de API de Anthropic. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. Seleccione {{< ui >}}Connect{{< /ui >}} en el mosaico de Anthropic. +1. Siga las instrucciones en el mosaico. + - Proporcione su clave de API de Anthropic. Asegúrese de que esta clave tenga el permiso {{< ui >}}write{{< /ui >}} para {{< ui >}}model capabilities{{< /ui >}}. + +{{< img src="llm_observability/configuration/anthropic-tile.png" alt="El mosaico de configuración de Anthropic en Agent Observability. Enumera las instrucciones para configurar Anthropic y proporcionar su clave de API de Anthropic." style="width:100%;" >}} + +[1]: https://app.datadoghq.com/llm/settings/integrations +{{% /tab %}} +{{% tab "Amazon Bedrock" %}} + +
Si está sujeto a HIPAA, usted es responsable de asegurarse de conectarse únicamente a una cuenta de Amazon Bedrock que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Conecte su cuenta de Amazon Bedrock a Agent Observability con su cuenta de AWS. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. Seleccione {{< ui >}}Connect{{< /ui >}} en el mosaico de Amazon Bedrock. +1. Siga las instrucciones en el mosaico. + + {{< img src="llm_observability/configuration/amazon-bedrock-tile.png" alt="El mosaico de configuración de Amazon Bedrock en Agent Observability. Enumera las instrucciones para configurar Amazon Bedrock." style="width:100%;" >}} + +4. Asegúrese de configurar el rol {{< ui >}}Invoke models from Amazon Bedrock{{< /ui >}} para ejecutar evaluaciones. Puede encontrar más detalles sobre la acción InvokeModel en la [documentación de referencia de la API de Amazon Bedrock][2]. + + + {{< img src="llm_observability/configuration/amazon-bedrock-tile-step-2.png" alt="El segundo paso para configurar Amazon Bedrock que requiere que los usuarios agreguen permisos a la cuenta de integración." style="width:100%;" >}} + +[1]: https://app.datadoghq.com/llm/settings/integrations +[2]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html +{{% /tab %}} + +{{% tab "GCP Vertex AI" %}} + +
Si está sujeto a HIPAA, usted es responsable de asegurarse de conectarse únicamente a una cuenta de Google Cloud Platform que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Conecte Vertex AI a Agent Observability con su cuenta de Google Cloud Platform. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. En el mosaico de Google Cloud Vertex AI, haga clic en {{< ui >}}Connect{{< /ui >}} para agregar una nueva cuenta de GCP, o haga clic en {{< ui >}}Configure{{< /ui >}} junto a donde aparecen sus cuentas existentes para comenzar el proceso de incorporación. + - Verá todas las cuentas de GCP conectadas a Datadog en esta página. Sin embargo, aún debe completar el proceso de incorporación de una cuenta para usarla en Agent Observability. +1. Siga las instrucciones de incorporación para configurar su cuenta. + - Agregue el rol [{{< ui >}}Vertex AI User{{< /ui >}}][2] a su cuenta y habilite [{{< ui >}}Vertex AI API{{< /ui >}}][3]. + +{{< img src="llm_observability/configuration/vertex-ai-pint.png" alt="El flujo de trabajo de incorporación de Vertex AI. Siga los pasos para configurar su cuenta de servicio de GCP con los permisos de Vertex AI adecuados para su uso con Agent Observability." style="width:100%;" >}} + +**Nota**: Cuando ejecuta evaluaciones, el selector de ubicación ofrece opciones de región única, multirregión y global. Para obtener detalles sobre cada opción, consulte la [documentación de ubicaciones de Vertex AI de Google][4]. + +[1]: https://app.datadoghq.com/llm/settings/integrations +[2]: https://docs.cloud.google.com/vertex-ai/docs/general/access-control#aiplatform.user +[3]: https://console.cloud.google.com/apis/library/aiplatform.googleapis.com +[4]: https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations +{{% /tab %}} + +{{% tab "AI Gateway" %}} +
Si está sujeto a HIPAA, usted es responsable de asegurarse de conectarse únicamente a una AI Gateway que esté sujeta a un acuerdo de asociación comercial (BAA) y que cumpla con todos los requisitos para el cumplimiento de HIPAA.
+ +Su AI Gateway debe ser compatible con la [especificación de la API de OpenAI][2]. + +Conecte su AI Gateway a Agent Observability con su URL base, clave de API y encabezados. + +1. En Datadog, navegue a [{{< ui >}}Agent Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Integrations{{< /ui >}}][1]. +1. Haga clic en la pestaña {{< ui >}}Configure{{< /ui >}}, luego haga clic en {{< ui >}}New{{< /ui >}} para crear una nueva puerta de enlace. +1. Siga las instrucciones en el mosaico. + - Proporcione un nombre para su puerta de enlace. + - Seleccione su proveedor. + - Proporcione su URL base. + - Proporcione su clave de API y, opcionalmente, cualquier encabezado. + +{{< img src="llm_observability/configuration/ai-gateway-tile-3.png" alt="El mosaico de configuración de AI Gateway en Agent Observability. Enumera las instrucciones para configurar AI Gateway." style="width:100%;" >}} + +[1]: https://app.datadoghq.com/llm/settings/integrations +[2]: https://platform.openai.com/docs/api-reference/introduction +{{% /tab %}} +{{< /tabs >}} + +Si su proveedor de LLM restringe las direcciones IP, puede obtener los rangos de IP necesarios visitando la [documentación de rangos de IP de Datadog][2], seleccionando su `Datadog Site`, pegando la URL `GET` en su navegador y copiando la sección `webhooks`. + +[1]: https://app.datadoghq.com/llm/settings/integrations +[2]: /es/api/latest/ip-ranges/ \ No newline at end of file diff --git a/hugo/content/es/logs/guide/reduce_data_transfer_fees.md b/hugo/content/es/logs/guide/reduce_data_transfer_fees.md index f8b474371a3..f2d33f1b5ba 100644 --- a/hugo/content/es/logs/guide/reduce_data_transfer_fees.md +++ b/hugo/content/es/logs/guide/reduce_data_transfer_fees.md @@ -1,48 +1,51 @@ --- algolia: tags: - - transferencia de datos - - egreso de datos + - data transfer + - data egress - private link - PrivateLink - Private Service Connect further_reading: - link: https://www.datadoghq.com/architecture/using-cross-region-aws-privatelink-to-send-telemetry-to-datadog/ tag: Centro de arquitectura - text: Uso de AWS PrivateLink entre regiones para el envío de telemetría a Datadog + text: Uso de AWS PrivateLink de varias regiones para enviar telemetría a Datadog - link: https://aws.amazon.com/solutions/case-studies/textnow-privatelink-case-study/ - tag: Estudio de caso de AWS - text: TextNow ahorra un 93% en gastos de transferencia de datos gracias a AWS PrivateLink + tag: Estudio de incidencia de AWS + text: TextNow ahorra un 93% en tarifas de transferencia de datos usando AWS PrivateLink - link: /logs/log_configuration/flex_logs/#potential-sources-for-sending-directly-to-flex-logs tag: Documentación - text: Posibles fuentes de envío directo a Flex Logs -title: Cómo enviar logs a Datadog reduciendo los costes de transferencia de datos + text: Fuentes potenciales para enviar directamente a Flex Logs +title: Cómo enviar registros a Datadog mientras reduce las tarifas de transferencia + de datos --- +## Descripción general {#overview} -## Información general +A medida que su organización crece, la cantidad de datos que transfiere entre proveedores de nube a Datadog también puede aumentar. Los proveedores de nube cobran una tarifa de *transferencia de datos* o una tarifa de *salida de datos* para mover esos datos desde el almacenamiento en la nube a través de direcciones IP públicas. Esto puede convertirse fácilmente en una de las partidas más grandes en la factura de costos de nube de su organización. -A medida que tu organización crece, la cantidad de datos que transfieres entre proveedores de nube a Datadog también puede aumentar. Los proveedores de nube cobran una tarifa de *transferencia de datos* o de *egreso de datos* por mover esos datos desde el almacenamiento en la nube mediante direcciones IP públicas. Esta puede convertirse fácilmente en una de las partidas más altas de la factura de costes en la nube de tu organización. +Envíe datos a través de una red privada para evitar la internet pública y reducir sus tarifas de transferencia de datos. Como ejemplo de cómo los enlaces privados reducen sus costos, en las regiones US East de AWS, cuesta $0.09 transferir 1 GB, pero con AWS PrivateLink, el costo para transferir datos baja a $0.01 por GB. -Envía datos a través de una red privada para evitar la Internet pública y reducir tus costes de transferencia de datos. Como ejemplo de cómo los enlaces privados reducen tus costes, en las regiones AWS del este de EE.UU., cuesta 0,09 dólares transferir 1 GB, pero con AWS PrivateLink, el coste de transferir datos baja a 0,01 dólares por GB. +## Proveedores de nube compatibles {#supported-cloud-providers} -## Proveedores de nube compatibles +
Asegúrese de que el sitio de Datadog seleccionado {{< region-param key="dd_site_name" code="true" >}} sea correcto. Los enlaces privados específicos de la nube no están disponibles para todos los sitios de Datadog.
-
Asegúrate de que el sitio Datadog seleccionado {{< region-param key="dd_site_name" code="true" >}} es correcto. Los enlaces privados específicos de la nube no están disponibles para todos los sitios Datadog.
- -{{< whatsnext desc="Conéctate a Datadog mediante:" >}} +{{< whatsnext desc="Conéctese a Datadog a través de:" >}} {{< nextlink href="/agent/guide/private-link/?tab=crossregionprivatelinkendpoints&site=us" >}}US1 - AWS PrivateLink{{< /nextlink >}} {{< nextlink href="/agent/guide/private-link/?tab=crossregionprivatelinkendpoints&site=ap1" >}}AP1 - AWS PrivateLink{{< /nextlink >}} + {{< nextlink href="/agent/guide/private-link/?tab=crossregionprivatelinkendpoints&site=ap2" >}}AP2 - AWS PrivateLink{{< /nextlink >}} + {{< nextlink href="/agent/guide/private-link/?tab=crossregionprivatelinkendpoints&site=uk1" >}}UK1 - AWS PrivateLink{{< /nextlink >}} {{< nextlink href="/agent/guide/azure-private-link/" >}}US3 - Azure Private Link{{< /nextlink >}} {{< nextlink href="/agent/guide/gcp-private-service-connect/" >}}US5 - Google Cloud Private Service Connect{{< /nextlink >}} + {{< nextlink href="/agent/guide/gcp-private-service-connect/?site=eu" >}}EU1 - Google Cloud Private Service Connect{{< /nextlink >}} {{< /whatsnext >}} -## Herramientas adicionales +## Herramientas adicionales {#additional-tools} -Después de cambiar a enlaces privados, puedes utilizar lo siguiente para monitorizar tu uso y tener más control sobre los costes de tus datos: -- Datadog [Cloud Network Monitoring][1] identifica las aplicaciones de mayor rendimiento de tu organización. -- Las herramientas [Cloud Cost Management][2] pueden verificar y monitorizar la reducción de tus costes de nube. +Después de cambiar a enlaces privados, puede usar lo siguiente para hacer un seguimiento de su uso y tener más control sobre sus costos de datos: +- Cloud Network Monitoring de Datadog identifica las aplicaciones de mayor rendimiento de su organización. +- Las herramientas de Cloud Cost Management pueden verificar y monitorear la reducción de sus costos en la nube. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/mobile/guide/configure-mobile-device-for-on-call.md b/hugo/content/es/mobile/guide/configure-mobile-device-for-on-call.md index 3de0906484b..27bf0d28427 100644 --- a/hugo/content/es/mobile/guide/configure-mobile-device-for-on-call.md +++ b/hugo/content/es/mobile/guide/configure-mobile-device-for-on-call.md @@ -1,215 +1,218 @@ --- -description: Configura tu dispositivo móvil para recibir notificaciones de On-Call - fiables con alertas críticas, derivación de No molestar y configuración de contactos - de telefonía. +description: Configure su dispositivo móvil para recibir notificaciones de On-Call + confiables con alertas críticas, omisión de No molestar y configuración de contacto + telefónico. further_reading: - link: https://docs.datadoghq.com/incident_response/on-call/ tag: Documentación text: Documentación de On-Call - link: https://docs.datadoghq.com/mobile/ tag: Documentación - text: Documentación de aplicaciones móviles -title: Configurar tu dispositivo móvil para Datadog On-Call + text: Documentación de la aplicación móvil de Datadog +title: Configure su dispositivo móvil para Datadog On-Call --- +
+Si solo necesita acceder a On-Call en el móvil y desea restringir el acceso a datos de telemetría confidenciales en dispositivos móviles, comuníquese con el soporte de Datadog. +
-Estar de guardia requiere notificaciones fiables y puntuales para asegurar que puedas responder a los incidentes con eficacia. Esta guía te explica los pasos para configurar tu dispositivo móvil para un rendimiento óptimo con [Datadog On-Call][5]. +Estar en On-Call requiere notificaciones confiables y oportunas para garantizar que pueda responder a los incidentes de manera efectiva. Esta guía lo guía a través de los pasos para configurar su dispositivo móvil para un rendimiento óptimo con [Datadog On-Call][5]. -1. Instala la [aplicación móvil de Datadog][1]. -2. [Configurar notificaciones push](#set-up-push-notifications): habilita tu dispositivo para recibir notificaciones desde la aplicación móvil de Datadog. -3. [Circunvenir el modo silencio y No molestar](#circumvent-mute-and-do-not-disturb-mode-for-on-call): recibe notificaciones push, llamadas de voz y SMS mientras tu dispositivo está en modo No molestar. +1. Instale la [aplicación móvil de Datadog][1]. +2. [Configure las notificaciones push](#set-up-push-notifications): Habilite su dispositivo para recibir notificaciones de la aplicación móvil de Datadog. +3. [Omita el modo silencio y No molestar](#circumvent-mute-and-do-not-disturb-mode-for-on-call): Reciba notificaciones push, llamadas de voz y SMS mientras su dispositivo esté en modo No molestar. -## Establecer notificaciones push +## Configurar notificaciones push {#set-up-push-notifications}
-Cuando accedes por primera vez a la aplicación móvil de Datadog, un flujo de integración se encarga de la configuración y los permisos de notificación. +Cuando inicie sesión en la aplicación móvil de Datadog por primera vez, un flujo de incorporación se encargará de la configuración de notificaciones y los permisos.
-Sin embargo, por defecto, la aplicación móvil no puede enviarte notificaciones. Para recibir notificaciones push: +Sin embargo, de forma predeterminada, la aplicación móvil no tiene permiso para enviarle notificaciones. Para recibir notificaciones push: {{< tabs >}} {{% tab "iOS" %}} -1. En la aplicación móvil de Datadog, ve a **Settings** > **Notifications** (Configuración > Notificaciones). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}}. - {{< img src="mobile/push_notification/ios_settings_may_2025.png" alt="Encuentra la configuración de notificaciones en la versión de iOS de la aplicación móvil de Datadog." style="width:35%;" >}} + {{< img src="mobile/push_notification/ios_settings_may_2025.png" alt="Encuentre la configuración de notificaciones en la versión de iOS de la aplicación móvil de Datadog." style="width:35%;" >}} -2. Activa la casilla **Allow Notifications** (Permitir notificaciones). Si es la primera vez que activas las notificaciones, se abrirá una solicitud de permisos. Concede el permiso y, a continuación, vuelve a tocar **Enable Notifications** (Activar notificaciones) para ir a la configuración del sistema iOS. +2. Active el interruptor {{< ui >}}Allow Notifications{{< /ui >}}. Si es la primera vez que habilita las notificaciones, esto abrirá un aviso de permisos. Otorgue el permiso y luego toque {{< ui >}}Enable Notifications{{< /ui >}} nuevamente para ir a la configuración del sistema iOS. - {{< img src="mobile/push_notification/ios_notification_may_2025.png" alt="Configura los ajustes de las notificaciones de sistema de tu dispositivo iOS." style="width:100%;" >}} + {{< img src="mobile/push_notification/ios_notification_may_2025.png" alt="Configure la configuración de notificaciones del sistema de su dispositivo iOS." style="width:100%;" >}} -3. En la configuración del sistema iOS, asegúrate de activar la opción **Allow Notifications** (Permitir notificaciones). Datadog recomienda encarecidamente que también actives las opciones **Sound** (Sonido) y **Badges** (Distintivos). +3. Dentro de la configuración del sistema iOS, asegúrese de activar el interruptor {{< ui >}}Allow Notifications{{< /ui >}}. Datadog recomienda encarecidamente que también active los interruptores {{< ui >}}Sound{{< /ui >}} y {{< ui >}}Badges{{< /ui >}}. -Asegúrate de conceder a la aplicación móvil los permisos necesarios. +Asegúrese de otorgar a la aplicación móvil de Datadog los permisos necesarios. {{% /tab %}} {{% tab "Android" %}} -1. En la aplicación móvil de Datadog, ve a **Settings** > **Notifications** (Configuración > Notificaciones). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}}. - {{< img src="mobile/push_notification/android_settings_may_2025.png" alt="Encuentra los ajustes de notificaciones en la versión de Android de la aplicación móvil de Datadog." style="width:35%;" >}} + {{< img src="mobile/push_notification/android_settings_may_2025.png" alt="Encuentre la configuración de notificaciones en la versión de Android de la aplicación móvil de Datadog." style="width:35%;" >}} -2. Activa el interruptor **Allow notifications** (Permitir notificaciones). Datadog te recomienda encarecidamente que actives también **Sound and vibration** (Sonido y vibración) y **Show content on Lock screen** (Mostrar contenido en pantalla de bloqueo). +2. Active el interruptor {{< ui >}}Allow notifications{{< /ui >}}. Datadog recomienda encarecidamente que también habilite {{< ui >}}Sound and vibration{{< /ui >}} y {{< ui >}}Show content on Lock screen{{< /ui >}}. - {{< img src="mobile/push_notification/android_notification_may_2025.png" alt="Configura los ajustes de las notificaciones de sistema de tu dispositivo Android." style="width:100%;" >}} + {{< img src="mobile/push_notification/android_notification_may_2025.png" alt="Configure los ajustes de notificación del sistema de su dispositivo Android." style="width:100%;" >}} {{% /tab %}} {{< /tabs >}} -### Sonidos personalizados -Tanto en iOS como en Android, tienes la opción de anular los sonidos de notificación predeterminados del sistema. La aplicación de Datadog viene precargada con una selección de sonidos personalizados. +### Sonidos personalizados {#custom-sounds} +Tanto en iOS como en Android, tiene la opción de anular los sonidos de notificación predeterminados del sistema. La aplicación de Datadog viene precargada con una selección de sonidos personalizados. -## El modo Silencio y No molestar para On-Call -Puedes anular el volumen de sistema de tu dispositivo y el modo No molestar tanto para las notificaciones push (desde la aplicación móvil de Datadog) como para las notificaciones de telefonía (como llamadas de voz y SMS). +## Omitir el modo silencio y No molestar para On-Call {#circumvent-mute-and-do-not-disturb-mode-for-on-call} +Puede anular el volumen del sistema y el modo No molestar de su dispositivo tanto para las notificaciones push (desde la aplicación móvil de Datadog) como para las notificaciones de telefonía (como llamadas de voz y SMS). -### Notificaciones push críticas +### Notificaciones push críticas {#critical-push-notifications} {{< tabs >}} {{% tab "iOS" %}} -{{< img src="mobile/push_notification/ios_critical_may_2025.png" alt="Anula tu volumen de sistema del dispositivo de iOS y el modo No molestar." style="width:100%;" >}} +{{< img src="mobile/push_notification/ios_critical_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo iOS." style="width:100%;" >}} -1. En la aplicación móvil de Datadog, ve a **Settings** > **On-Call** (Configuración > On-Call). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. -2. Activa el conmutador **Critical Alerts** (Alertas críticas). Las alertas críticas ignoran el interruptor de Silencio y No molestar. Si activas las alertas críticas, el sistema reproduce el sonido de una alerta crítica independientemente de la configuración de silencio o de No molestar del dispositivo. +2. Habilite el interruptor {{< ui >}}Critical Alerts{{< /ui >}}. Las alertas críticas ignoran el interruptor de silencio y el modo No molestar. Si habilita las alertas críticas, el sistema reproduce el sonido de una alerta crítica independientemente de la configuración de silencio o No molestar del dispositivo. -3. En los ajustes del sistema iOS, asegúrate de activar la opción **Alertas críticas**. Asegúrate de conceder a la aplicación móvil los permisos necesarios. +3. Dentro de la configuración del sistema iOS, asegúrese de habilitar el interruptor {{< ui >}}Critical Alerts{{< /ui >}}. Asegúrese de otorgar a la aplicación móvil de Datadog los permisos necesarios. -4. Selecciona tu dispositivo para **Notificaciones muy urgentes** o **Notificaciones poco urgentes** en la sección Preferencias de notificación. +4. Seleccione su dispositivo para {{< ui >}}High Urgency Notifications{{< /ui >}} y/o {{< ui >}}Low Urgency Notifications{{< /ui >}} en la sección de Preferencias de notificación. -5. Prueba la configuración de tu notificación push crítica tocando **Test push notifications** (Probar notificaciones push). +5. Pruebe la configuración de su notificación push crítica tocando {{< ui >}}Test push notifications{{< /ui >}}. {{% /tab %}} {{% tab "Android" %}} -{{< img src="mobile/push_notification/android_critical_may_2025.png" alt="Anula tu volumen del sistema del dispositivo de Android y el modo No molestar." style="width:100%;" >}} +{{< img src="mobile/push_notification/android_critical_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%;" >}} -1. En la aplicación móvil de Datadog, ve a **Settings** > **On-Call** (Configuración > On-Call). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. -{{< img src="mobile/push_notification/android_allow_notification_may_2025.png" alt="Anula tu volumen del sistema del dispositivo de Android y el modo No molestar." style="width:100%;" >}} +{{< img src="mobile/push_notification/android_allow_notification_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%;" >}} -2. Si faltan permisos de notificación, pulsa **Bypass Do Not Disturb** (Ignorar No Molestar) y activa **Allow notifications** (Permitir notificaciones) en System Settings (Ajustes del sistema). +2. Si faltan los permisos de notificación, toque {{< ui >}}Bypass Do Not Disturb{{< /ui >}} y habilite {{< ui >}}Allow notifications{{< /ui >}} en la Configuración del sistema. -{{< img src="mobile/push_notification/android_override_system_may_2025.png" alt="Anula tu volumen del sistema del dispositivo de Android y el modo No molestar." style="width:100%;" >}} +{{< img src="mobile/push_notification/android_override_system_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%;" >}} -3. A continuación, pulsa **Bypass Do Not Disturb** (Ignorar No Molestar) y activa **Override Do Not Disturb** (Anular No Molestar) en Ajustes del sistema para On-Call de urgencia elevada. +3. Luego toque {{< ui >}}Bypass Do Not Disturb{{< /ui >}} y habilite {{< ui >}}Override Do Not Disturb{{< /ui >}} en la Configuración del sistema para On-Call de alta urgencia. - **En dispositivos Samsung**: ve a **Settings** > **Notifications** > **Do Not Disturb** > **App notifications** (Configuración > Notificaciones > No molestar > Notificaciones de aplicaciones). Selecciona Datadog y permite que eluda No molestar. + **En dispositivos Samsung**: Vaya a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}Do Not Disturb{{< /ui >}} > {{< ui >}}App notifications{{< /ui >}}. Seleccione Datadog y permítale omitir el modo No molestar. -{{< img src="mobile/push_notification/android_override_system_volume_may_2025.png" alt="Anula tu volumen del sistema del dispositivo de Android y el modo No molestar." style="width:100%;" >}} +{{< img src="mobile/push_notification/android_override_system_volume_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%;" >}} -4. Para anular el volumen del sistema, toca **Override system volume** (Anular volumen del sistema) y permite **Mode access** (Modo de acceso) en System Settings (Configuración del sistema) para activar **Override system volume** (Anular volumen del sistema). +4. Para anular el volumen del sistema, toque {{< ui >}}Override system volume{{< /ui >}} y permita que {{< ui >}}Mode access{{< /ui >}} en la Configuración del sistema active {{< ui >}}Override system volume{{< /ui >}}. -5. En la web, configura las preferencias de notificación para **Notificaciones muy urgentes** o **Notificaciones poco urgentes**. +5. En la web, configure las preferencias de notificación para {{< ui >}}High Urgency Notifications{{< /ui >}} y/o {{< ui >}}Low Urgency Notifications{{< /ui >}}. -6. Prueba la configuración de tu notificación push crítica tocando **Test push notifications** (Probar notificaciones push). +6. Pruebe la configuración de su notificación push crítica tocando {{< ui >}}Test push notifications{{< /ui >}}.
-En Android, la aplicación móvil de Datadog no puede omitir los ajustes de volumen del sistema o de No molestar cuando se utiliza dentro de un perfil de trabajo. Como solución, instala la aplicación móvil de Datadog en tu perfil personal. +En Android, la aplicación móvil de Datadog no puede omitir el volumen del sistema ni la configuración de No molestar cuando se usa dentro de un perfil de trabajo. Datadog recomienda instalar la aplicación móvil de Datadog en su perfil personal, sujeto a las políticas de su organización.
{{% /tab %}} {{< /tabs >}} -### Sonidos y volumen personalizados para un push crítico -Para las notificaciones muy urgentes, Datadog recomienda encarecidamente personalizar los sonidos del sistema y la configuración del volumen. Esto garantiza que las alertas no solo sean más claras y reconocibles, sino también más eficaces a la hora de captar la atención. Testea tus preferencias de notificación para confirmar que se comportan como esperas. +### Sonidos y volumen personalizados para notificaciones push críticas {#custom-sounds-and-volume-for-critical-push} +Para notificaciones de alta urgencia, Datadog recomienda encarecidamente personalizar la configuración de sonido y volumen de su sistema. Esto garantiza que las alertas no solo sean más distintas y reconocibles, sino también más efectivas para captar la atención. Pruebe sus preferencias de notificación para confirmar que se comportan como se espera. -### Canales de telefonía (llamadas de voz y SMS) +### Canales de telefonía (llamadas de voz y SMS) {#telephony-channels-voice-calls-and-sms} -Para mayor fiabilidad, Datadog utiliza un conjunto rotatorio de números de teléfono para ponerse en contacto contigo. Para que tu teléfono reconozca las llamadas y mensajes de Datadog On-Call, puedes crear una tarjeta de contacto digital. Esta tarjeta se actualiza automáticamente con los últimos números de teléfono de Datadog. Puedes asignar permisos especiales a este contacto en la configuración del sistema para mejorar la funcionalidad, como eludir el modo No molestar. +Para mayor confiabilidad, Datadog utiliza un conjunto rotativo de números de teléfono para contactarlo. Para ayudar a que su teléfono reconozca las llamadas y mensajes de Datadog On-Call, puede crear una tarjeta de contacto digital. Esta tarjeta se actualiza automáticamente con los números de teléfono más recientes de Datadog. Puede asignar permisos especiales a este contacto en la configuración de su sistema para una funcionalidad mejorada, como omitir el modo No molestar. {{< tabs >}} {{% tab "iOS" %}} -{{< img src="incident_response/on-call/guides/configure-mobile-device-for-on-call/ios_sync_card_may_2025.png" alt="Anula el modo No molestar del dispositivo iOS para SMS y llamadas de voz" style="width:100%;" >}} +{{< img src="incident_response/on-call/guides/configure-mobile-device-for-on-call/ios_sync_card_may_2025.png" alt="Anule el modo No molestar de su dispositivo iOS para SMS y llamadas de voz" style="width:100%;" >}} -1. En la aplicación móvil de Datadog, ve a **Account** > **Settings** > **Notifications** (Cuenta > Configuración > Notificaciones). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. -2. Activa **Enable Automatic Contact Card Sync** (Activar sincronización automática de tarjetas de contacto). Esto crea un contacto llamado "Datadog On-Call", que se actualiza regularmente con los últimos números de teléfono de Datadog. +2. Habilite {{< ui >}}Automatic Contact Card Sync{{< /ui >}} Esto crea un contacto llamado "Datadog On-Call", que se actualiza regularmente con los números de teléfono más recientes de Datadog. -3. Una vez creado este contacto, abre los ajustes del sistema iOS y ve a **Focus** > **Do Not Disturb** (Enfoque > No molestar). +3. Después de crear este contacto, abra la configuración de su sistema iOS y navegue a {{< ui >}}Focus{{< /ui >}} > {{< ui >}}Do Not Disturb{{< /ui >}}. -4. En **People** (Personas), permite notificaciones desde el contacto de Datadog On-Call. Si has activado las alertas críticas para las aplicaciones push de Datadog, la aplicación móvil de Datadog también aparecerá en **Aplicaciones**. +4. En {{< ui >}}People{{< /ui >}}, permita las notificaciones del contacto de Datadog On-Call. Si habilitó las alertas críticas para las aplicaciones push de Datadog, entonces la aplicación móvil de Datadog también aparece en **Apps**. -5. Para anular el modo silencioso, desplácese hasta el Datadog On-Call contacto >> pulsa **Ringstone** >> activa **Emergency Bypass** (Desvío de emergencia). +5. Para omitir el modo silencioso, navegue al contacto de Datadog On-Call >> toque {{< ui >}}Ringtone{{< /ui >}} >> habilite {{< ui >}}Emergency Bypass{{< /ui >}}. {{% /tab %}} {{% tab "Android" %}} -{{< img src="incident_response/on-call/guides/configure-mobile-device-for-on-call/android_sync_card_may_2025.png" alt="Anula tu modo No molestar del dispositivo de Android para SMS y llamadas de voz" style="width:100%;" >}} +{{< img src="incident_response/on-call/guides/configure-mobile-device-for-on-call/android_sync_card_may_2025.png" alt="Anule el modo no molestar de su dispositivo Android para SMS y llamadas de voz" style="width:100%;" >}} -1. En la aplicación móvil de Datadog, ve a **Settings** > **On-Call** (Configuración > On-Call). +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. -2. En **Phone & SMS** (Teléfono y SMS), activa **Automatic Contact Card Sync** (Sincronización automática de tarjetas de contacto). Esto crea un contacto llamado "Datadog On-Call", que se actualiza regularmente con los últimos números de teléfono de Datadog. +2. En {{< ui >}}Phone & SMS{{< /ui >}}, habilite {{< ui >}}Automatic Contact Card Sync{{< /ui >}}. Esto crea un contacto llamado "Datadog On-Call", que se actualiza regularmente con los números de teléfono más recientes de Datadog. -3. Una vez creado este contacto, márcalo como favorito. +3. Después de crear este contacto, márquelo como favorito. -4. Abre la configuración del sistema Android y ve a **Sound & Vibration** > **Do Not Disturb** (Sonido y vibración > No molestar). Crea una excepción para el contacto de Datadog On-Call. +4. Abra la configuración de su sistema Android y navegue a {{< ui >}}Sound & vibration{{< /ui >}} > {{< ui >}}Do Not Disturb{{< /ui >}}. Cree una excepción para el contacto de Datadog On-Call. {{% /tab %}} {{< /tabs >}}
-Descarga la versión actual de la tarjeta de contacto de Datadog On-Call. Nota: La tarjeta de contacto está sujeta a cambios en cualquier momento. +Descargue la versión actual de la tarjeta de contacto de Datadog On-Call. Nota: La tarjeta de contacto está sujeta a cambios en cualquier momento.
-## Widgets móviles de On-Call -Añade widgets de pantalla de inicio y pantalla de bloqueo de On-Call para acceder a tus páginas y turnos. +## Widgets móviles de On-Call {#on-call-mobile-widgets} +Agregue widgets de la pantalla de inicio y de bloqueo de On-Call para acceder a sus páginas y turnos. -### Widget de la pantalla de inicio de On-Call +### Widget de la pantalla de inicio de On-Call {#on-call-home-screen-widget} -Ve tus turnos y las páginas de On-Call en la pantalla de inicio de tu móvil con los widgets de Datadog. +Visualice sus turnos de On-Call y sus páginas de On-Call en la pantalla de inicio de su dispositivo móvil con los widgets de Datadog. -Puedes personalizar tus widgets de turnos de On-Call filtrando en: +Puede personalizar sus widgets de turno de On-Call filtrando por: - Organización - Periodo de tiempo -Puedes personalizar tus widgets de página de On-Call filtrando en: +Puede personalizar los widgets de su página de On-Call filtrando por: - Organización - Equipo -- Pedido +- Orden -**Nota**: Puedes añadir filtros adicionales para el widget de páginas de On-Call. +**Nota**: Puede agregar filtros adicionales para el widget de páginas de On-Call. -#### Editar un widget de turno de On-Call +#### Edite un widget de turno de On-Call {#edit-an-on-call-shift-widget} {{< tabs >}} {{% tab "iOS" %}} -{{< img src="mobile/widgets/ios_shifts_widget_may_2025.png" alt="Página de inicio configurada de widgets de turno de On-Call que se muestran en pantallas de iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} +{{< img src="mobile/widgets/ios_shifts_widget_may_2025.png" alt="Widgets de turnos de On-Call de la pantalla de inicio configurados que se muestran en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} -1. Mantén pulsado el widget durante un rato para configurarlo. -2. Pulsa **Edit Widget** (Editar widget) para acceder a la pantalla de configuración. -3. Selecciona la **Organization** (Organización) y el **Period** (Periodo) para el que deseas ver tus turnos de On-Call. -4. Pulsa en cualquier lugar fuera del widget para validar tus preferencias y salir de la pantalla de configuración. +1. Mantenga presionado el widget para configurar. +2. Toque {{< ui >}}Edit Widget{{< /ui >}} para abrir la pantalla de configuración. +3. Seleccione la {{< ui >}}Organization{{< /ui >}} y el {{< ui >}}Period{{< /ui >}} para los cuales desea ver sus turnos de On-Call. +4. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. {{% /tab %}} {{% tab "Android" %}} -{{< img src="mobile/widgets/android_shifts_widget_may_2025.png" alt="Página de inicio configurada de widgets de turno de On-Call que se muestran en pantallas de Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} +{{< img src="mobile/widgets/android_shifts_widget_may_2025.png" alt="Widgets de turnos de On-Call de la pantalla de inicio configurados que se muestran en pantallas Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} -1. Pulsa sobre el widget para configurarlo. -2. Selecciona la **Organization** (Organización) y el **Time Period** (Periodo de tiempo) para el que deseas ver tus turnos de On-Call. -3. Pulsa **✓** para guardar la configuración. -4. Mantén pulsado el widget durante un rato para elegir el tamaño que prefieras. +1. Toque el widget para configurar. +2. Seleccione la {{< ui >}}Organization{{< /ui >}} y el {{< ui >}}Time Period{{< /ui >}} para los cuales desea ver sus turnos de On-Call. +3. Toque {{< ui >}}✓{{< /ui >}} para guardar la configuración. +4. Mantenga presionado y cambie el tamaño del widget según su preferencia. {{% /tab %}} {{< /tabs >}} -### Widget de pantalla de bloqueo de On-Call +### Widget de pantalla de bloqueo de On-Call {#on-call-lock-screen-widget} -El widget de pantalla de bloqueo de On-Call muestra tu estado de On-Call. Los widgets de la pantalla de bloqueo solo están disponibles en iOS. +El widget de pantalla de bloqueo de On-Call muestra su estado de On-Call. Los widgets de pantalla de bloqueo solo están disponibles en iOS. -1. Pulsa prolongadamente en la pantalla de bloqueo. -2. Pulsa **Customize** (Personalizar) y, a continuación, **Lock Screen** (Pantalla de bloqueo). -3. Pulsa en el espacio para widgets de la pantalla de bloqueo para abrir la tarjeta **Add Widgets** (Añadir widgets). -4. Desplázate y pulsa sobre la aplicación **Datadog**. -4. Pulsa el widget de pantalla de bloqueo de On-Call. -5. Toca el widget en la pantalla de bloqueo para abrir el panel de configuración. -6. Selecciona la organización para la que deseas mostrar tu estado de On-Call. +1. Mantenga presionada la pantalla de bloqueo. +2. Toque {{< ui >}}Customize{{< /ui >}}, luego {{< ui >}}Lock Screen{{< /ui >}}. +3. Toque el espacio del widget de la pantalla de bloqueo para abrir la tarjeta {{< ui >}}Add Widgets{{< /ui >}}. +4. Desplácese hasta la aplicación {{< ui >}}Datadog{{< /ui >}} y tóquela. +4. Toque el widget de pantalla de bloqueo On-Call. +5. Toque el widget en la pantalla de bloqueo para abrir el panel de configuración. +6. Seleccione la organización para la cual desea mostrar su estado de On-Call. -**Nota**: Debes tener un espacio vacío en tu pantalla de bloqueo para añadir un nuevo widget. Puedes eliminar widgets de la pantalla de bloqueo pulsando el botón **-** en la parte superior izquierda del widget que deseas eliminar. +**Nota**: Debe tener un espacio vacío en su pantalla de bloqueo para agregar un nuevo widget. Puede eliminar widgets de la pantalla de bloqueo tocando el botón {{< ui >}}\-{{< /ui >}} en la parte superior izquierda del widget que desea eliminar. -## Solucionar problemas -Si necesitas ayuda para solucionar problemas, [ponte en contacto con el servicio de asistencia de Datadog][2]. También puedes enviar un mensaje en el canal [público de Slack de Datadog][3] [#mobile-app][4]. +## Solución de problemas {#troubleshooting} +Para obtener ayuda con la solución de problemas, [contacte al soporte de Datadog][2]. También puede enviar un mensaje en el canal [#mobile-app][4] de [Datadog public Slack][3]. [1]: /es/mobile/?tab=ios [2]: /es/help/ diff --git a/hugo/content/es/mobile/push_notification.md b/hugo/content/es/mobile/push_notification.md new file mode 100644 index 00000000000..07cc2f6fe36 --- /dev/null +++ b/hugo/content/es/mobile/push_notification.md @@ -0,0 +1,180 @@ +--- +description: Configure las notificaciones push en iOS y Android para alertas On-Call, + incidentes y actualizaciones de flujo de trabajo con configuraciones de alertas + críticas. +further_reading: +- link: /incident_response/on-call/ + tag: Documentación + text: Documentación de On-Call +- link: /incident_response/incident_management/notification/ + tag: Documentación + text: Documentación de las reglas de Notifications para incidentes +- link: /getting_started/workflow_automation/ + tag: Documentación + text: Documentación de Workflow Automation +title: Configurar notificaciones push en la aplicación móvil de Datadog +--- +{{< site-region region="gov,gov2" >}} +
Solo se admiten notificaciones push de Incident Management para su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} +Reciba notificaciones push móviles para [alertas On-Call](#circumvent-mute-and-Do-Not-Disturb-mode-for-On-Call), [incidentes](#incident-notifications) y [actualizaciones de Workflow Automation](#workflow-automation-notifications), para que pueda mantenerse informado en tiempo real desde la aplicación móvil de Datadog. + +## Configurar notificaciones push {#set-up-push-notifications} + +De forma predeterminada, la aplicación móvil de Datadog no tiene permiso para enviarle notificaciones. Para recibir notificaciones push: + +{{< tabs >}} +{{% tab "iOS" %}} + +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}}. + + {{< img src="mobile/push_notification/ios_settings_may_2025.png" alt="Encuentre la configuración de notificaciones en la versión de iOS de la aplicación móvil de Datadog." style="width:40%; background:none; border:none; box-shadow:none;" >}} + +2. Active el interruptor {{< ui >}}Allow Notifications{{< /ui >}}. Si es la primera vez que habilita las notificaciones, esto abrirá un aviso de permisos. Otorgue el permiso y luego toque {{< ui >}}Enable Notifications{{< /ui >}} nuevamente para ir a la configuración del sistema iOS. + + {{< img src="mobile/push_notification/ios_notification_may_2025.png" alt="Configure la configuración de notificaciones del sistema de su dispositivo iOS." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +3. Dentro de la configuración del sistema iOS, asegúrese de activar el interruptor {{< ui >}}Allow Notifications{{< /ui >}}. Datadog recomienda que también active los interruptores {{< ui >}}Sound{{< /ui >}} y {{< ui >}}Badges{{< /ui >}}. + +Asegúrese de otorgar a la aplicación móvil de Datadog los permisos necesarios. + +### Sonidos personalizados {#custom-sounds} + +Puede anular los sonidos de notificación predeterminados del sistema con sonidos personalizados precargados en la aplicación móvil de Datadog. + +Para personalizar los sonidos de notificación: + +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}Notification categories{{< /ui >}}. +2. Seleccione la categoría de notificación que desea personalizar. +3. Seleccione un sonido de las opciones disponibles. + +{{% /tab %}} + +{{% tab "Android" %}} +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}}. + + {{< img src="mobile/push_notification/android_settings_may_2025.png" alt="Encuentre la configuración de notificaciones en la versión de Android de la aplicación móvil de Datadog." style="width:40%; background:none; border:none; box-shadow:none;" >}} + +2. Active el interruptor {{< ui >}}Allow notifications{{< /ui >}}. Datadog recomienda encarecidamente que también habilite {{< ui >}}Sound and vibration{{< /ui >}} y {{< ui >}}Show content on Lock screen{{< /ui >}}. + + {{< img src="mobile/push_notification/android_notification_may_2025.png" alt="Configure los ajustes de notificación del sistema de su dispositivo Android." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +### Sonidos personalizados {#custom-sounds-1} + +Puede anular los sonidos de notificación predeterminados del sistema con sonidos personalizados precargados en la aplicación móvil de Datadog. + +Para personalizar los sonidos de notificación: + +1. Vaya a {{< ui >}}Device Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}Advanced Settings{{< /ui >}}. +2. Seleccione {{< ui >}}Manage notification categories for each app{{< /ui >}} y asegúrese de que Datadog esté seleccionado. +3. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}Notification categories{{< /ui >}}. +4. Seleccione la categoría de notificación que desea personalizar. +5. Seleccione un sonido de las opciones disponibles. + +**Nota**: El volumen de las notificaciones push está determinado por la configuración de volumen del sistema de su dispositivo. + +{{% /tab %}} +{{< /tabs >}} + +## Omitir el modo silencio y No molestar para On-Call {#circumvent-mute-and-do-not-disturb-mode-for-on-call} +Puede anular el volumen del sistema y el modo No molestar de su dispositivo tanto para las notificaciones push (desde la aplicación móvil de Datadog) como para las notificaciones de telefonía (como llamadas de voz y SMS). + +Para obtener más información, consulte la [guía sobre cómo configurar su dispositivo móvil para On-Call][4]. + +### Notificaciones push críticas {#critical-push-notifications} +{{< site-region region="gov,gov2" >}} +
On-Call no es compatible con el sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} +
+Las notificaciones push críticas solo están disponibles para On-Call. Si está configurando On-Call en la aplicación móvil de Datadog por primera vez, un flujo de incorporación se encarga de la configuración y los permisos de las notificaciones. +
+{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/push_notification/ios_critical_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo iOS." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. + +2. Habilite el interruptor {{< ui >}}Critical Alerts{{< /ui >}}. Las alertas críticas ignoran el interruptor de silencio y el modo No molestar. Si habilita las alertas críticas, el sistema reproduce el sonido de una alerta crítica independientemente de la configuración de silencio o No molestar del dispositivo. + +3. Dentro de la configuración del sistema iOS, asegúrese de habilitar el interruptor {{< ui >}}Critical Alerts{{< /ui >}}. Asegúrese de otorgar a la aplicación móvil de Datadog los permisos necesarios. + +4. Seleccione su dispositivo para {{< ui >}}High Urgency Notifications{{< /ui >}} y/o {{< ui >}}Low Urgency Notifications{{< /ui >}} en la sección de Preferencias de notificación. + +5. Pruebe la configuración de su notificación push crítica tocando {{< ui >}}Test push notifications{{< /ui >}}. + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/push_notification/android_critical_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +1. En la aplicación móvil de Datadog, navegue a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}On-Call{{< /ui >}}. + +{{< img src="mobile/push_notification/android_allow_notification_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +2. Si faltan los permisos de notificación, toque {{< ui >}}Bypass Do Not Disturb{{< /ui >}} y habilite {{< ui >}}Allow notifications{{< /ui >}} en la Configuración del sistema. + +{{< img src="mobile/push_notification/android_override_system_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +3. Luego toque {{< ui >}}Bypass Do Not Disturb{{< /ui >}} y habilite {{< ui >}}Override Do Not Disturb{{< /ui >}} en la Configuración del sistema para On-Call de alta urgencia. + + **En dispositivos Samsung**: Vaya a {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Notifications{{< /ui >}} > {{< ui >}}Do Not Disturb{{< /ui >}} > {{< ui >}}App notifications{{< /ui >}}. Seleccione Datadog y permítale omitir el modo No molestar. + +{{< img src="mobile/push_notification/android_override_system_volume_may_2025.png" alt="Anule el volumen del sistema y el modo No molestar de su dispositivo Android." style="width:100%; background:none; border:none; box-shadow:none;" >}} + +4. Para anular el volumen del sistema, toque {{< ui >}}Override system volume{{< /ui >}} y permita {{< ui >}}Mode access{{< /ui >}} en la Configuración del sistema para activar {{< ui >}}Override system volume{{< /ui >}}. + +5. Seleccione su dispositivo para {{< ui >}}High Urgency Notifications{{< /ui >}} y/o {{< ui >}}Low Urgency Notifications{{< /ui >}} en la sección de Preferencias de notificación. + +6. Pruebe la configuración de su notificación push crítica tocando {{< ui >}}Test push notifications{{< /ui >}}. + +
+En Android, la aplicación móvil de Datadog no puede omitir el volumen del sistema ni la configuración de No molestar cuando se usa dentro de un perfil de trabajo. Como solución alternativa, instale la aplicación móvil de Datadog en su perfil personal. +
+ +
+Debe haber iniciado sesión para reconocer y tomar medidas ante las páginas de On-Call. Sin embargo, sigue recibiendo notificaciones push de On-Call cuando ha cerrado sesión en la aplicación móvil de Datadog. +
+ +{{% /tab %}} +{{< /tabs >}} + +### Sonidos y volumen personalizados para notificaciones push críticas {#custom-sounds-and-volume-for-critical-push} + +
Los controles de volumen y sonido solo están disponibles para las notificaciones de On-Call. Las notificaciones de incidentes y flujos de trabajo utilizan la configuración predeterminada del sistema de su dispositivo.
+ +Para notificaciones de alta urgencia, Datadog recomienda encarecidamente personalizar la configuración de sonido y volumen de su sistema. Esto garantiza que las alertas no solo sean más distintas y reconocibles, sino también más efectivas para captar la atención. Pruebe sus preferencias de notificaciones push críticas para confirmar que se comportan como se espera. + +## Notificaciones de incidentes {#incident-notifications} +Reciba actualizaciones de estado sobre sus incidentes activos configurando [Reglas de notificación para incidentes en la Web][2]. + +1. En Incidentes, navegue a {{< ui >}}Settings{{< /ui >}} > [{{< ui >}}Notification Rules{{< /ui >}}][1]. +2. Haga clic en el botón {{< ui >}}+ New Rule{{< /ui >}} en la parte superior derecha. +3. Ingrese los campos de condición deseados para {{< ui >}}When an incident is...{{< /ui >}} y {{< ui >}}And meets the following conditions...{{< /ui >}}. De forma predeterminada, estos filtros están vacíos y se activa una regla de notificación para cualquier incidente. +4. En {{< ui >}}Notify...{{< /ui >}} seleccione su destinatario de notificación. Si desea notificar al dispositivo móvil de un destinatario, seleccione la opción para su nombre que incluye {{< ui >}}(Mobile Push Notification){{< /ui >}}. El destinatario debe haber habilitado las notificaciones en la aplicación móvil de Datadog para que aparezca esta opción. +5. {{< ui >}}With Template:{{< /ui >}} Seleccione la plantilla de mensaje que desea que utilice la regla de notificación. +6. {{< ui >}}Renotify on updates to:{{< /ui >}} Seleccione las propiedades del incidente que activan las notificaciones. Se envía una nueva notificación cada vez que una o más de las propiedades seleccionadas cambian. +7. Haga clic en {{< ui >}}Save{{< /ui >}}. + +De forma predeterminada, si tiene habilitadas las notificaciones push y se le asigna como comandante de un incidente, recibirá automáticamente una notificación push para el incidente. + +## Notificaciones de Workflow Automation {#workflow-automation-notifications} +{{< site-region region="gov,gov2" >}} +
Workflow Automation is not supported for your selected Datadog site ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} + +Cree [automatizaciones de flujo de trabajo][3] que envíen notificaciones push móviles. + +1. En el lienzo de flujo de trabajo, haga clic en el icono {{< ui >}}\+{{< /ui >}}. +2. Busque {{< ui >}}Send mobile push notification{{< /ui >}}. +3. En {{< ui >}}To{{< /ui >}} seleccione al destinatario de su notificación. El destinatario debe haber habilitado las notificaciones en la aplicación móvil de Datadog para que aparezca esta opción. +4. Ingrese el mensaje {{< ui >}}Body{{< /ui >}}. + +### Lecturas Adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]:https://app.datadoghq.com/incidents/settings?_gl=1*334tvl*_gcl_aw*R0NMLjE3NDUwMDYwODQuQ2p3S0NBand0ZGlfQmhBQ0Vpd0E5N3k4QkxnWmU4cTdmazJtUlJoQ3o1OTZXcTNmRWJIQTk1Rzg4dnAtUmZtUHBQUGx0OVNVSjRlSk9Sb0Nwek1RQXZEX0J3RQ..*_gcl_au*MTAxODMyNDk1My4xNzQwNDk1NzA3LjExNzUxOTU1MTUuMTc0NjQ5NTU3OS4xNzQ2NDk1NTc5*_ga*MjExMzI1MjUyOS4xNzQ1ODU2NjMx*_ga_KN80RDFSQK*czE3NDY0OTQzMzYkbzU4JGcxJHQxNzQ2NDk5MzA0JGowJGwwJGg5NTQ2NTk0Ng..*_fplc*Q2V5WVJmNnRSV2R0RmljTDZyWmg3ZEVZMFZPeDNlTFhLZkxnenFCOXBvTUslMkZTWWk0a3JzVEw1cDU5YlZzTW55TE5YazY5bjdhJTJGOXpySzJ0TFMxTEozZms0WTVlOWVibEN5ZFBNNm1XYmJJQll0R0d4YnlralJ2eU1CS1NoUSUzRCUzRA..#Rules +[2]: /es/incident_response/incident_management/setup_and_configuration/notification_rules/ +[3]: https://docs.datadoghq.com/es/getting_started/workflow_automation/ +[4]: /es/incident_response/on-call/guides/configure-mobile-device-for-on-call \ No newline at end of file diff --git a/hugo/content/es/mobile/widgets.md b/hugo/content/es/mobile/widgets.md new file mode 100644 index 00000000000..4fc4ac13139 --- /dev/null +++ b/hugo/content/es/mobile/widgets.md @@ -0,0 +1,385 @@ +--- +description: Agregue widgets de Datadog a su pantalla de inicio o a su pantalla de + bloqueo móvil para acceder rápidamente a SLOs, incidentes, tableros, seguimientos + e información de guardia. +further_reading: +- link: https://www.datadoghq.com/blog/datadog-mobile-widgets/ + tag: blog + text: Mejore su experiencia de guardia con los widgets del dashboard de la aplicación + móvil de Datadog. +title: Widgets para dispositivos móviles +--- +La aplicación móvil de Datadog admite widgets de SLO, incidentes, dashboard, on-call y seguimientos en la pantalla de inicio o de bloqueo de su dispositivo. + +## Widgets de la pantalla de inicio {#home-screen-widgets} +Agregue widgets en su pantalla de inicio para acceder rápidamente a información crítica en tiempo real directamente desde su pantalla de inicio sin tener que abrir la aplicación móvil de Datadog. + +{{< tabs >}} +{{% tab "iOS" %}} +1. Mantenga presionada la pantalla de inicio. +2. Toque {{< ui >}}Edit{{< /ui >}}, luego toque el botón {{< ui >}}Add Widget{{< /ui >}} en la esquina superior izquierda de la pantalla. +2. Busque widgets de \"Datadog\". +3. Toque el widget deseado y el tamaño de su preferencia (pequeño, mediano o grande). +4. Toque {{< ui >}}Add Widget{{< /ui >}} y configure los campos del widget. Al acceder a la aplicación móvil desde el widget, estos son los campos que se consultarán en la aplicación. +5. Arrastre, minimice o expanda el widget para personalizar la ubicación y el tamaño del widget en su pantalla de inicio. + +{{% /tab %}} +{{% tab "Android" %}} +1. Mantenga presionada la pantalla de inicio. +2. Toque el botón {{< ui >}}Widgets{{< /ui >}} en el editor de su pantalla de inicio. Si tiene atajos de aplicaciones, podría aparecer solo como un ícono en la esquina superior derecha de la burbuja. +3. Busque widgets de \"Datadog\". +4. Toque el widget deseado y toque {{< ui >}}Add{{< /ui >}}. +4. Cambie el tamaño del widget según su preferencia. +5. Toque el widget para configurar los campos del widget. Al acceder a la aplicación móvil desde el widget, estos son los campos que se consultarán en la aplicación. + +{{% /tab %}} +{{< /tabs >}} + +**Nota**: Los widgets se actualizan cada 30 minutos. Active la actualización manualmente tocando el marco de tiempo ubicado en la parte superior izquierda del widget. + +### Widgets de incidentes {#incident-widgets} +Vea sus [incidentes abiertos][1] desde la pantalla de inicio de su dispositivo móvil con los widgets de Datadog. Para profundizar en los problemas, toque cualquier incidente abierto que se muestre en el widget para abrirlo con más detalles en la aplicación móvil de Datadog. + +Además, puede personalizar sus widgets de Incidentes abiertos filtrando por: + +- Organización +- Niveles de gravedad +- Clientes afectados +- Ordenar + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_incident_widget_may_2025.png" alt="Widget móvil de incidentes de Datadog mostrado en dispositivos iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque {{< ui >}}Edit Widget{{< /ui >}}. +2. Toque {{< ui >}}Choose{{< /ui >}} junto a la etiqueta {{< ui >}}Organization{{< /ui >}} para obtener los incidentes abiertos de la organización seleccionada. +3. Toque {{< ui >}}SEV-1 and SEV-2{{< /ui >}} junto a la etiqueta Severities para especificar filtros de gravedad. +4. Toque {{< ui >}}Both{{< /ui >}} junto a la etiqueta {{< ui >}}Customer Impacted{{< /ui >}} para filtrar los incidentes abiertos que han afectado a clientes. +5. Escriba en el cuadro de texto {{< ui >}}Type additional filters{{< /ui >}} para especificar cualquier filtro adicional. +6. Toque {{< ui >}}Ordering{{< /ui >}} para especificar el orden en que se enumeran los incidentes. +7. Toque fuera del widget para guardar su selección y salir de la pantalla de configuración. + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_incidents_widget_may_2025.png" alt="Widget móvil de incidentes de Datadog mostrado en Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque el título del widget para configurar. +2. Toque {{< ui >}}Organization{{< /ui >}} para obtener los incidentes abiertos de la organización seleccionada. +3. Toque {{< ui >}}Severities{{< /ui >}} para especificar filtros de gravedad. +4. Toque {{< ui >}}Customer impacted{{< /ui >}} para filtrar los incidentes abiertos que han afectado a los clientes. +5. Toque {{< ui >}}Query{{< /ui >}} para especificar cualquier filtro adicional. +6. Toque {{< ui >}}Sorted by{{< /ui >}} para especificar el orden en que se enumeran los incidentes. +7. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}} para guardar su selección y salir de la pantalla de configuración. +8. Mantenga presionado y cambie el tamaño del widget según su preferencia. + +{{% /tab %}} +{{< /tabs >}} + +#### Mostrar incidentes abiertos de múltiples organizaciones {#display-open-incidents-from-multiple-organizations} + +Puede mostrar incidentes abiertos de múltiples organizaciones en la pantalla de inicio de su dispositivo móvil. + +{{< tabs >}} +{{% tab "iOS" %}} +- Toque {{< ui >}}Choose{{< /ui >}} junto a la etiqueta Organización para obtener los incidentes abiertos de la organización seleccionada. + + +{{% /tab %}} +{{% tab "Android" %}} + +1. Toque el título del widget para configurar. +2. Desde la pantalla de configuración, toque {{< ui >}}Organization{{< /ui >}}. +3. Seleccione una nueva organización (es posible que deba iniciar sesión). +4. Ajuste el tamaño del widget según su preferencia. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}}. + + +{{% /tab %}} +{{< /tabs >}} + +### Widget de SLOs {#slos-widget} + +Vea sus [SLOs][2] desde la pantalla de inicio de su dispositivo móvil con los widgets de Datadog. Puede agregar cualquier SLO de su organización como widget, junto con un marco de tiempo. + +Las opciones de marco de tiempo son: +- 7 días +- 30 días +- 90 días +- Semana anterior +- Mes anterior +- Semana a la fecha +- Mes a la fecha + +También puede especificar un tablero que se abra de forma predeterminada cuando toque un widget de SLOs, lo que le permite investigar rápidamente más a fondo sus métricas. + +**Nota**: Si no especifica un dashboard que se abra de forma predeterminada, al tocar un widget de SLOs se abre la aplicación de Datadog. + +#### Editar un widget de SLOs {#edit-an-slos-widget} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_slo_widget_may_2025.png" alt="Widgets de SLO de tiempo de actividad de la aplicación mostrados en dispositivos iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque {{< ui >}}Edit Widget{{< /ui >}}. +3. Toque {{< ui >}}Choose{{< /ui >}} junto a la etiqueta SLO para elegir un SLO a seguir. +4. Dependiendo del SLO elegido, puede aparecer una etiqueta {{< ui >}}Timeframe{{< /ui >}}. Toque {{< ui >}}Choose{{< /ui >}} junto a la etiqueta {{< ui >}}Timeframe{{< /ui >}} para elegir el marco de tiempo del SLO. +5. Toque {{< ui >}}Choose{{< /ui >}} junto a la etiqueta {{< ui >}}Dashboard to open{{< /ui >}} para elegir un tablero que se abra cuando se toque el widget de SLOs. +6. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. + + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_slo_widget_may_2025.png" alt="Widgets de SLO de tiempo de actividad de la aplicación mostrados en Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque el título del widget para configurar. +2. Toque {{< ui >}}Selected SLO{{< /ui >}} para elegir un SLO a seguir. +3. Toque {{< ui >}}Selected Time Window{{< /ui >}} para elegir el marco de tiempo del SLO. +4. Toque {{< ui >}}Dashboard to open{{< /ui >}} para elegir un tablero que se abra cuando se toque el widget de SLOs. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}} para validar su selección y salir de la pantalla de configuración. +6. Mantenga presionado y cambie el tamaño del widget según su preferencia. + + +{{% /tab %}} +{{< /tabs >}} + +#### Mostrar SLOs de múltiples organizaciones {#display-slos-from-multiple-organizations} + +Puede mostrar SLOs de múltiples organizaciones en la pantalla de inicio de su dispositivo móvil. + +{{< tabs >}} +{{% tab "iOS" %}} + +Todas las organizaciones en las que ha iniciado sesión se muestran en la pantalla de configuración. Si no ve su organización, inicie sesión en ella nuevamente. + + +{{% /tab %}} +{{% tab "Android" %}} + +1. Toque el título del widget para configurar. +2. Desde la pantalla de configuración, toque {{< ui >}}Organization{{< /ui >}}. +3. Seleccione una nueva organización (es posible que deba iniciar sesión). +4. Ajuste el tamaño del widget según su preferencia. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}}. + + +{{% /tab %}} +{{< /tabs >}} + +### Widget de seguimientos {#monitors-widget} + +Vea sus [seguimientos][3] desde su pantalla de inicio con los widgets de Datadog. Toque cualquier celda para abrir la pantalla {{< ui >}}Monitor Search{{< /ui >}} en la aplicación, con sus seguimientos ya completados. + +**Nota**: Si no tiene ninguna vista guardada de seguimientos, el widget le muestra todos los seguimientos de forma predeterminada. + +#### Editar un widget de Seguimientos {#edit-a-monitors-widget} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_monitor_widget_may_2025.png" alt="Widgets de seguimientos configurados mostrados en pantallas de iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque en {{< ui >}}Edit Widget{{< /ui >}}. +3. Toque en la celda de la visualización guardada individual para seleccionar y deseleccionar. +4. Reordene las visualizaciones arrastrando y soltando cada celda. +5. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. + + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_monitor_widget_may_2025.png" alt="Widgets de seguimientos configurados mostrados en Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque en el título del widget para configurar. +2. Toque en {{< ui >}}Saved Views{{< /ui >}}. +3. Toque en la celda de la visualización guardada individual para seleccionar y deseleccionar. +4. Reordene las visualizaciones arrastrando y soltando cada celda. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}} para validar su selección y salir de la pantalla de configuración. +6. Desplácese dentro del widget para ver más visualizaciones guardadas. Mantenga presionado y cambie el tamaño del widget según su preferencia. + + +{{% /tab %}} +{{< /tabs >}} + +#### Mostrar Monitors de múltiples organizaciones {#display-monitors-from-multiple-organizations} + +Puede mostrar Monitors de múltiples organizaciones dentro del mismo widget. + +{{< tabs >}} +{{% tab "iOS" %}} + +Todas las organizaciones en las que ha iniciado sesión se muestran en la pantalla de configuración. Si no ve su organización, es posible que deba iniciar sesión nuevamente. + + +{{% /tab %}} +{{% tab "Android" %}} + +1. Toque el título del widget para configurar. +2. Desde la pantalla de configuración, toque {{< ui >}}Organization{{< /ui >}}. +3. Seleccione una nueva organización (es posible que deba iniciar sesión). +4. Edite el widget según sus preferencias. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}}. + +{{% /tab %}} +{{< /tabs >}} + +### Widget de Dashboard {#dashboard-widget} + +Visualice su [Dashboard][4] desde su pantalla de inicio con los widgets de Datadog. Toque cualquier celda para abrir la pantalla {{< ui >}}dashboard search{{< /ui >}} en la aplicación, con su Dashboard ya cargado. + +#### Edite un widget de Dashboard {#edit-a-dashboard-widget} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_dashboard_widget_may_2025.png" alt="Widgets de Dashboard configurados mostrados en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque en {{< ui >}}Edit Widget{{< /ui >}}. +3. Desde la pantalla de configuración, toque {{< ui >}}Dashboard{{< /ui >}} y seleccione un Dashboard. +4. Toque {{< ui >}}Widget{{< /ui >}} para seleccionar un widget específico del Dashboard seleccionado. +5. Seleccione una {{< ui >}}Period{{< /ui >}} para la consulta del widget. +6. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. + + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_dashboard_widget_may_2025.png" alt="Widgets de Dashboard configurados mostrados en Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque en el título del widget para configurar. +2. Toque en {{< ui >}}Saved Views{{< /ui >}}. +3. Toque en la celda de la visualización guardada individual para seleccionar y deseleccionar. +4. Reordene las visualizaciones arrastrando y soltando cada celda. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}} para validar su selección y salir de la pantalla de configuración. +6. Desplácese dentro del widget para ver más visualizaciones guardadas. Mantenga presionado y cambie el tamaño del widget según su preferencia. + + +{{% /tab %}} +{{< /tabs >}} + +#### Muestre Dashboards de múltiples organizaciones {#display-dashboards-from-multiple-organizations} + +Puede mostrar Dashboards de múltiples organizaciones en la pantalla de inicio de su dispositivo móvil. + +{{< tabs >}} +{{% tab "iOS" %}} + +Todas las organizaciones en las que ha iniciado sesión se muestran en la pantalla de configuración. Si no ve su organización, inicie sesión en ella nuevamente. + + +{{% /tab %}} +{{% tab "Android" %}} + +1. Toque el título del widget para configurar. +2. Desde la pantalla de configuración, toque {{< ui >}}Organization{{< /ui >}}. +3. Seleccione una nueva organización (es posible que deba iniciar sesión). +4. Ajuste el tamaño del widget según su preferencia. +5. Toque {{< ui >}}Save{{< /ui >}} o {{< ui >}}Apply{{< /ui >}}. + +{{% /tab %}} +{{< /tabs >}} + +### Widget de On-Call {#on-call-widget} + +Visualice sus turnos de On-Call y sus páginas de On-Call en la pantalla de inicio de su dispositivo móvil con los widgets de Datadog. + +Puede personalizar sus widgets de turnos de On-Call filtrando por: + +- Organización +- Periodo de tiempo + +Puede personalizar sus widgets de páginas de On-Call filtrando por: + +- Organización +- Equipo +- Orden + +**Nota**: Puede agregar filtros adicionales para el widget de páginas de On-Call. + +#### Edite un widget de turno de On-Call {#edit-an-on-call-shift-widget} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_shifts_widget_may_2025.png" alt="Widgets de turnos de On-Call de la pantalla de inicio configurados que se muestran en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque {{< ui >}}Edit Widget{{< /ui >}} para abrir la pantalla de configuración. +3. Seleccione la {{< ui >}}Organization{{< /ui >}} y el {{< ui >}}Period{{< /ui >}} en los que desea ver sus turnos de On-Call. +4. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. + + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_shifts_widget_may_2025.png" alt="Widgets de turnos de On-Call de la pantalla de inicio configurados que se muestran en pantallas Android" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque el widget para configurar. +2. Seleccione la {{< ui >}}Organization{{< /ui >}} y el {{< ui >}}Time Period{{< /ui >}} en los que desea ver sus turnos de On-Call. +3. Toque {{< ui >}}✓{{< /ui >}} para guardar la configuración. +4. Mantenga presionado y cambie el tamaño del widget según su preferencia. + +{{% /tab %}} +{{< /tabs >}} + +#### Edite un widget de páginas de On-Call {#edit-an-on-call-pages-widget} + +{{< tabs >}} +{{% tab "iOS" %}} + +{{< img src="mobile/widgets/ios_pages_widget_may_2025.png" alt="Widgets de páginas de On-Call de la pantalla de inicio configurados que se muestran en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Mantenga presionado el widget para configurar. +2. Toque {{< ui >}}Edit Widget{{< /ui >}} para abrir la pantalla de configuración. +3. Seleccione la {{< ui >}}Organization{{< /ui >}}, el {{< ui >}}Teams{{< /ui >}} y el {{< ui >}}Order{{< /ui >}} en los que desea ver las páginas de On-Call. +4. Escriba cualquier filtro adicional y toque {{< ui >}}Done{{< /ui >}}. +5. Toque fuera del widget para validar su selección y salir de la pantalla de configuración. + + +{{% /tab %}} +{{% tab "Android" %}} + +{{< img src="mobile/widgets/android_pages_widget_may_2025.png" alt="Widgets de la página de On-Call de la pantalla de inicio configurados que se muestran en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +1. Toque el widget para configurar. +2. Seleccione {{< ui >}}Organization{{< /ui >}}, {{< ui >}}Teams{{< /ui >}} y {{< ui >}}Sort by{{< /ui >}} en los que desea ver las páginas de On-Call. +3. Toque para escribir cualquier {{< ui >}}Additional Filter{{< /ui >}} y toque {{< ui >}}Save{{< /ui >}}. +4. Toque {{< ui >}}✓{{< /ui >}} cuando termine las configuraciones +5. Mantenga presionado y cambie el tamaño del widget según su preferencia. + +{{% /tab %}} +{{< /tabs >}} + + +## Widgets de la pantalla de bloqueo {#lock-screen-widgets} +{{< img src="mobile/widgets/lockscreen_widget_may_2025.png" alt="Widgets de la pantalla de bloqueo configurados que se muestran en pantallas iOS" responsive="true" style="width:100%; background:none; border:none; box-shadow:none;">}} + +Los widgets de la pantalla de bloqueo para On-Call, Monitors, SLOs, Incidents y Dashboards son compatibles con iOS. + +1. Mantenga presionada la pantalla de bloqueo. +2. Toque {{< ui >}}Customize{{< /ui >}}, luego {{< ui >}}Lock Screen{{< /ui >}}. +3. Toque el espacio del widget de la pantalla de bloqueo para abrir la tarjeta {{< ui >}}Add Widgets{{< /ui >}}. +4. Desplácese hasta la aplicación {{< ui >}}Datadog{{< /ui >}} y tóquela. +4. Toque el widget de la pantalla de bloqueo que desea agregar. +5. Toque el widget en la pantalla de bloqueo para abrir el panel de configuración. +6. Configure el widget de acuerdo con los campos especificados para el widget seleccionado. +7. Arrastre, minimice o expanda el widget para personalizar la ubicación y el tamaño del widget en su pantalla de bloqueo. + +**Nota**: Debe tener un espacio vacío en su pantalla de bloqueo para agregar un nuevo widget. Puede eliminar un widget de la pantalla de bloqueo tocando el botón {{< ui >}}\-{{< /ui >}} en la parte superior izquierda del widget que desea eliminar. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/monitors/incident_management +[2]: /es/dashboards/widgets/slo/#setup +[3]: /es/monitors/ +[4]: /es/dashboards/ +[5]: /es/incident_response/on-call/ \ No newline at end of file diff --git a/hugo/content/es/monitors/_index.md b/hugo/content/es/monitors/_index.md index 6107c9ed3e3..5f10dfa73a6 100644 --- a/hugo/content/es/monitors/_index.md +++ b/hugo/content/es/monitors/_index.md @@ -17,82 +17,85 @@ cascade: - alerting - monitoring description: Cree monitores, configure notificaciones y automatizaciones, y administre - sus monitores utilizando la plataforma de Alerting + sus monitores mediante la plataforma de Alerting further_reading: - link: /api/v1/monitors/ tag: Documentación - text: API de Monitores de Datadog + text: API de monitores de Datadog +- link: https://learn.datadoghq.com/courses/apm-monitors-and-alerting + tag: Centro de aprendizaje + text: APM Monitors y Alerting - link: https://dtdg.co/fe - tag: Habilitación en Fundamentos - text: Únase a una sesión interactiva sobre cómo crear monitores efectivos + tag: Foundation Enablement + text: Únase a una sesión interactiva sobre la creación de monitores eficaces - link: https://www.datadoghq.com/blog/monitoring-101-alerting/ - tag: Blog - text: 'Monitoreo 101: Alertando sobre lo que importa' + tag: blog + text: 'Monitoreo 101: Alerting sobre lo que importa' - link: https://www.datadoghq.com/blog/monitor-notification-rules/ - tag: Blog - text: Dirija sus alertas de monitores con las reglas de notificación de monitores - de Datadog + tag: blog + text: Dirija sus alertas de seguimiento con las reglas de notificación de seguimiento + de Datadog. - link: https://www.datadoghq.com/blog/ecs-default-monitors/ - tag: Blog - text: Detecte y remedie problemas de ECS más rápido con monitores predeterminados + tag: blog + text: Detecte y solucione problemas de ECS más rápido con monitores predeterminados y el Explorador de ECS - link: https://www.datadoghq.com/blog/zendesk-cost-optimization - tag: Blog - text: 'Optimizando Datadog a gran escala: Observabilidad rentable en Zendesk' + tag: blog + text: 'Optimización de Datadog a escala: observabilidad rentable en Zendesk' - link: https://www.datadoghq.com/blog/human-name-detection - tag: Blog - text: Detecte nombres humanos en registros con ML en el Escáner de Datos Sensibles + tag: blog + text: Detecte nombres de personas en registros con ML en Sensitive Data Scanner +- link: https://www.datadoghq.com/blog/how-to-audit-and-clean-up-monitors/ + tag: blog + text: Cómo auditar y limpiar monitores de manera eficaz - link: https://app.datadoghq.com/release-notes?category=Alerting tag: Notas de la versión - text: ¡Consulte los últimos lanzamientos de Alerting de Datadog! (Se requiere inicio - de sesión en la aplicación). -- link: https://learn.datadoghq.com/courses/apm-monitors-and-alerting - tag: Centro de Aprendizaje - text: Monitores APM y Alerting -title: Monitores + text: ¡Eche un vistazo a las últimas versiones de Alerting de Datadog! (Se requiere + inicio de sesión en la aplicación). +title: Monitors --- -## Resumen {#overview} +## Descripción general {#overview} -Los Monitores de Datadog proporcionan visibilidad vital en su infraestructura, permitiendo la detección proactiva y la respuesta en tiempo real a problemas de rendimiento y caídas. Al configurar monitores para rastrear métricas clave y umbrales, las organizaciones pueden recibir alertas inmediatas y abordar problemas antes de que afecten a los clientes o causen tiempo de inactividad del sistema. +Datadog Monitors proporcionan una visibilidad vital de su infraestructura, permitiendo la detección proactiva y la respuesta en tiempo real a problemas de rendimiento e interrupciones. Al configurar Datadog Monitors para realizar un seguimiento de métricas y umbrales clave, las organizaciones pueden recibir alertas inmediatas y solucionar problemas antes de que afecten a los clientes o provoquen tiempos de inactividad del sistema. -Monitorea cambios críticos al verificar métricas, disponibilidad de integración y puntos de conexión de red a través de la plataforma de Alerting. Con los Monitores de Datadog puedes: +Supervise cambios críticos mediante la verificación de métricas, la disponibilidad de integraciones y los puntos finales de red a través de la plataforma de Alerting. Con Datadog Monitors, usted puede: - Simplificar los procesos de monitoreo y respuesta - Mejorar la eficiencia operativa - Optimizar el rendimiento -## Comenzar {#get-started} +## Comience {#get-started} -La forma más rápida de comenzar con los Monitores de Datadog es con [plantillas de Monitores][1]. Estas son una colección de monitores dentro de Datadog que están preconfigurados por Datadog y socios de integración. +La forma más rápida de comenzar con Datadog Monitors es con [Monitor templates][1]. Se trata de una colección de Datadog Monitors dentro de Datadog que están preconfigurados por Datadog y sus socios de integración. -También puedes construir tus propios monitores desde cero en entornos de laboratorio en el Centro de Aprendizaje, o en tu aplicación siguiendo la guía de Introducción a los Monitores. +También puede crear sus propios Datadog Monitors desde cero en entornos de laboratorio en el Centro de aprendizaje, o en su aplicación siguiendo la guía Getting Started with Monitors. -{{< whatsnext desc="Utiliza los siguientes recursos para crear un monitor:" >}} - {{< nextlink href="/getting_started/monitors/" >}}Introducción a los Monitores: Guía sobre cómo construir un monitor basado en métricas{{< /nextlink >}} - {{< nextlink href="/monitors/types/" >}}Crea un monitor a partir de Tipos de Monitores{{< /nextlink >}} - {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}Centro de Aprendizaje: Construye un monitor en un entorno de laboratorio sandbox{{< /nextlink >}} +{{< whatsnext desc="Utilice los siguientes recursos para crear un Monitor:" >}} + {{< nextlink href="/getting_started/monitors/" >}}Getting Started with Monitors: Guía sobre cómo crear un Monitor basado en métricas{{< /nextlink >}} + {{< nextlink href="/monitors/types/" >}}Cree un Monitor desde Monitor Types{{< /nextlink >}} + {{< nextlink href="https://learn.datadoghq.com/courses/getting-started-monitors" >}}Centro de aprendizaje: Cree un Monitor en un entorno de laboratorio sandbox{{< /nextlink >}} {{< /whatsnext >}} -## Analiza datos agregados {#analyze-aggregate-data} +## Analice datos agregados {#analyze-aggregate-data} -Los datos deben ser bien entendidos, granulares, etiquetados por contexto y de larga duración. Utiliza diferentes tipos de datos para alertas y diagnósticos, según el nivel de urgencia. Instrumenta todas las aplicaciones y recopila la mayor cantidad de datos relevantes posible para mediciones completas y observabilidad de sistemas complejos. +Los datos deben estar bien comprendidos, ser granulares, estar etiquetados por contexto y ser duraderos. Utilice diferentes tipos de datos para alertas y diagnósticos, según el nivel de urgencia. Instrumente todas las aplicaciones y recopile la mayor cantidad de datos relevantes posible para obtener mediciones integrales y observabilidad de sistemas complejos. -Mide la salud de tus aplicaciones y el estado de tu infraestructura con Datadog. Utiliza datos de toda la plataforma de Datadog para crear alertas sobre problemas potenciales. +Mida el estado de sus aplicaciones y el estado de su infraestructura con Datadog. Utilice datos de toda la plataforma Datadog para crear alertas sobre posibles problemas. ## Alerta sobre lo que importa {#alert-on-what-matters} -Configura [Monitor Notifications][2] para mantener a tu equipo informado sobre problemas y proporcionar orientación para la solución de problemas. Dirige las notificaciones a las personas correctas, aprovecha las variables de plantilla para incluir detalles y adjunta capturas de pantalla al enviar las alertas por correo electrónico o Slack. +Configure [Monitor Notifications][2] para mantener a su equipo informado sobre los problemas y proporcionar orientación para la resolución de problemas. Dirija las notificaciones a las personas correctas, aproveche las variables de plantilla para incluir detalles y adjunte instantáneas al enviar las alertas por correo electrónico o Slack. -Reduce la fatiga de alertas para que los equipos puedan concentrarse en resolver alertas cuando es necesario. Crea [downtimes][3] para silenciar alertas durante el mantenimiento de la aplicación. +Reduzca la fatiga por alertas para que los equipos puedan concentrarse en resolver las alertas cuando sea importante. Cree [downtimes][3] para silenciar las alertas durante el mantenimiento de la aplicación. ## ¿Qué sigue? {#whats-next} -Los monitores y alertas son herramientas esenciales para garantizar la confiabilidad, el rendimiento y la disponibilidad de los sistemas y aplicaciones de TI. Ayudan a mantener la eficiencia operativa, mejorar la experiencia del usuario y mitigar riesgos potenciales al permitir la detección y respuesta rápida a problemas antes de que se agraven. Aprende más sobre las características de los monitores: -1. [Schedule downtimes to mute monitors.][4] -1. [Organize and manage monitors.][5] -1. [Investigate alerts through the status page.][6] -1. [Resolve misconfigured monitors on the Monitor Quality page.][7] +Los monitores y las alertas son herramientas esenciales para garantizar la confiabilidad, el rendimiento y la disponibilidad de los sistemas y aplicaciones de TI. Ayudan a mantener la eficiencia operativa, mejorar la experiencia del usuario y mitigar los riesgos potenciales al permitir la detección y respuesta rápidas a los problemas antes de que se intensifiquen. Obtenga más información sobre las funciones de Monitor: +1. [Programe downtimes para silenciar Monitors.][4] +1. [Organice y administre Monitors.][5] +1. [Investigue las alertas a través de la página de estado.][6] +1. [Resuelva los Monitors mal configurados en la Monitor Quality page.][7] -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/network_monitoring/devices/troubleshooting.md b/hugo/content/es/network_monitoring/devices/troubleshooting.md index 61a97b7ee4d..85d4dd36793 100644 --- a/hugo/content/es/network_monitoring/devices/troubleshooting.md +++ b/hugo/content/es/network_monitoring/devices/troubleshooting.md @@ -4,22 +4,24 @@ aliases: further_reading: - link: https://www.datadoghq.com/blog/monitor-snmp-with-datadog/ tag: Blog - text: Monitorización de SNMP con Datadog -title: Solucionar problemas de NDM + text: Hacer un seguimiento de SNMP con Datadog +- link: /network_monitoring/devices/glossary + tag: Doc + text: Términos y conceptos de NDM +title: Solución de problemas de NDM --- +## Descripción general {#overview} -## Información general +Utilice la información a continuación para solucionar problemas de Datadog Network Device Monitoring. Si necesita ayuda adicional, comuníquese con el [soporte de Datadog][1]. -Utiliza la siguiente información para solucionar problemas de Network Device Monitoring de Datadog. Si necesitas más ayuda, ponte en contacto con el [servicio de asistencia de Datadog][1]. +## Dispositivo no visible en Datadog {#device-not-visible-in-datadog} -## Dispositivo no visible en Datadog +Lo siguiente asume que está ejecutando Datadog Agent v7.61.0+. -La siguiente explicación supone que estás ejecutando el Datadog Agent v7.61.0 o posterior. +Si su dispositivo no es visible en la página [Devices][2]: -Si tu dispositivo no está visible en la página [Dispositivos][2]: - -1. Ejecuta el comando [datadog-agent status][3] y busca la sección snmp, que contiene la IP de monitorización de tu dispositivo. Después de iniciar el Agent, NDM puede tardar hasta un minuto en detectar los dispositivos configurados individualmente. Si tu Agent está configurado para analizar un gran número de dispositivos, puede tardar más tiempo. -El resultado debería ser similar al siguiente: +1. Ejecute el comando [datadog-agent status][3] y busque la sección snmp, que contiene la IP de monitoreo de su dispositivo. Después de iniciar el Agent, puede tomar hasta un minuto para que NDM descubra los dispositivos configurados individualmente. Si su Agent está configurado para escanear una gran cantidad de dispositivos, puede tomar más tiempo. +El resultado debería verse similar a lo siguiente: ``` snmp @@ -38,9 +40,9 @@ El resultado debería ser similar al siguiente: No traceback ``` -2. Si tu dispositivo no aparece en la lista y estás utilizando Autodiscovery, probablemente significa que el Agent no pudo conectarse a tu dispositivo. +2. Si su dispositivo no aparece en la lista y está utilizando Autodiscovery, es probable que el Agent no haya podido conectarse a su dispositivo. - - Ejecuta el comando `datadog-agent status` y espera a que la sección `autodiscovery` informe de que se analizaron todas las IP de dispositivos posibles. En redes grandes, esto puede tardar varios minutos. El resultado debe ser similar al siguiente: + - Ejecute el comando `datadog-agent status` y espere a que la sección `autodiscovery` informe que se han escaneado todas las IP de dispositivo posibles. En redes grandes, esto puede tomar varios minutos. El resultado debería verse similar a lo siguiente: ``` Autodiscovery @@ -55,40 +57,68 @@ El resultado debería ser similar al siguiente: No IPs found in the subnet. ``` - Si Autodiscovery finalizó y tu dispositivo sigue sin aparecer en la página [Dispositivos][2], significa que el Agent no pudo conectarse a tu dispositivo. + If Autodiscovery completed and your device is still not appearing on the [Devices][2] page, it means the Agent could not connect to your device. - - Ejecuta un `snmp walk` en la IP de administrador del dispositivo para determinar por qué el Agent no puede conectarse a tu dispositivo. + - Ejecute un `snmp walk` en la IP de administración del dispositivo para determinar por qué el Agent no puede conectarse a su dispositivo. - **Nota**: Proporciona tus credenciales directamente en la CLI. Si no se proporcionan las credenciales, el Agent intentará localizarlas en los archivos de configuración del Agent que se estén ejecutando. + **Nota**: Proporcione sus credenciales directamente en la CLI. Si no se proporcionan las credenciales, el Agent intenta localizarlas en los archivos de configuración del Agent en ejecución. + + Consulte la documentación específica de su proveedor para obtener información adicional sobre la ejecución de estos comandos. - **Linux**:
- SNMP v2: - ``` - sudo -u dd-agent datadog-agent snmp walk -C - ``` - SNMP v3: - ``` - sudo -u dd-agent datadog-agent snmp walk -A -a -X -x - ``` - **Windows**: - ``` - agent snmp walk [:Port] + {{< tabs >}} + {{% tab "Linux" %}} - Example: - agent.exe snmp walk 10.143.50.30 1.3.6 - ``` + SNMP v2: - Consulta la documentación específica de tu proveedor para obtener información adicional sobre la ejecución de estos comandos. + ```shell + sudo -u dd-agent datadog-agent snmp walk -C + ``` -## Solucionar errores SNMP + SNMP v3: -Si el estado de SNMP o el recorrido del Agent muestran un error, podría indicar uno de los siguientes problemas: + ```shell + sudo -u dd-agent datadog-agent snmp walk -A -a -X -x + ``` -### Permiso denegado + {{% /tab %}} + {{% tab "Windows" %}} -Si ves un error de permiso denegado mientras enlazas puertos en logs del Agent, el número de puerto que has indicado puede requerir permisos superiores. Para vincularte a un número de puerto inferior a 1024, consulta [Uso del puerto de trampas predeterminado 162 de SNMP][8]. + Navegue al directorio de instalación del Agent: -### Dispositivo inalcanzable o mal configurado: + ```shell + cd "c:\Program Files\Datadog\Datadog Agent\bin" + ``` + + Para SNMP v2, ejecute: + + ```shell + "%ProgramFiles%\Datadog\Datadog Agent\bin\agent.exe" snmp walk -v 2 -C : + ``` + + Para SNMP v3, ejecute: + + ```shell + "%ProgramFiles%\Datadog\Datadog Agent\bin\agent.exe" snmp walk -v 3 -u -a -A -x -X : + ``` + + **Nota**: Ejecute el comando como administrador desde el directorio de instalación del Agent para evitar el siguiente error: + + ```shell + Error: unable to read artifact: open C:\ProgramData\Datadog\auth_token: Access is denied. + ``` + + {{% /tab %}} + {{< /tabs >}} + +## Solución de problemas de errores SNMP {#troubleshooting-snmp-errors} + +Si el estado de SNMP o el walk del Agent muestran un error, podría indicar uno de los siguientes problemas: + +### Permiso denegado {#permission-denied} + +Si ve un error de permiso denegado durante la vinculación de puertos en los registros del Agent, es posible que el número de puerto que indicó requiera permisos elevados. Para vincular a un número de puerto inferior a 1024, consulte [Uso del puerto SNMP Trap predeterminado 162][8]. + +### Dispositivo inalcanzable o mal configurado: {#unreachable-or-misconfigured-device} **Error**: ```plaintext @@ -97,22 +127,22 @@ Si ves un error de permiso denegado mientras enlazas puertos en logs del Agent, **Solución**: - 1. Inicia sesión en tu dispositivo y asegúrate de que SNMP está activado y expuesto en el puerto 161. - 2. Comprueba que tu cortafuegos del recopilador permite la salida. + 1. Inicie sesión en su dispositivo y asegúrese de que SNMP esté habilitado y expuesto en el puerto 161. + 2. Verifique que el firewall de su recopilador permita el tráfico de salida. - 3. Opcionalmente, sólo para Linux: + 3. Opcionalmente, solo para Linux: - Ejecuta `iptables -L OUTPUT` y asegúrate de que no hay ninguna regla de denegación: + Ejecute `iptables -L OUTPUT` y asegúrese de que no haya ninguna regla de denegación: - ``` + ```shell vagrant@agent-dev-ubuntu-22:~$ sudo iptables -L OUTPUT Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP all -- anywhere 10.4.5.6 ``` - 3. Asegúrate de que tu cadena comunitaria coincide. + 3. Asegúrese de que su cadena de comunidad coincida. -### Credenciales de SNMPv2 incorrectas +### Credenciales SNMPv2 incorrectas {#incorrect-snmpv2-credentials} **Error**: ``` @@ -121,9 +151,9 @@ Si ves un error de permiso denegado mientras enlazas puertos en logs del Agent, **Solución**: - Si utilizas SNMPv2, asegúrate de que se establece una cadena de comunidad. + Si utiliza SNMPv2, asegúrese de que haya una cadena de comunidad configurada. -### Protocolo de privacidad de SNMPv3 incorrecto +### Protocolo de privacidad SNMPv3 incorrecto {#incorrect-snmpv3-privacy-protocol} **Error**: ``` @@ -138,40 +168,40 @@ Si ves un error de permiso denegado mientras enlazas puertos en logs del Agent, **Solución**: - Comprueba que los siguientes parámetros de configuración de SNMPv3 son correctos: + Verifique que los siguientes parámetros de configuración de SNMPv3 sean correctos: - usuario - authKey - authProtocol - privKey - privProtocol -### No se reciben trampas o flujos en absoluto +### Traps o Flows no se reciben en absoluto {#traps-or-flows-not-being-received-at-all} -Si faltan trampas SNMP o tráfico NetFlow, una causa común son las reglas del cortafuegos que bloquean los paquetes UDP antes de que lleguen al Agent. Tanto las trampas SNMP como el tráfico NetFlow dependen de UDP y utilizan los puertos definidos en tu configuración de [datadog.yaml][9]. +Si faltan tramas SNMP o tráfico NetFlow, una causa común es que las reglas del firewall bloqueen los paquetes UDP antes de que lleguen al Agent. Tanto las tramas SNMP como NetFlow dependen de UDP y utilizan los puertos definidos en su configuración [datadog.yaml][9]. -
Los firewalls locales como Uncomplicated Firewall (UFW) pueden bloquear el tráfico incluso cuando están configurados con parámetros permisivos. Comprueba los logs del sistema en busca de entradas de paquetes bloqueados, que suelen indicar que el tráfico llegó a la interfaz de red pero se bloqueó antes de llegar al sistema operativo.
+
Los firewalls locales como Uncomplicated Firewall (UFW) pueden bloquear el tráfico incluso cuando están configurados con ajustes permisivos. Revise los registros del sistema en busca de entradas de paquetes bloqueados, lo que normalmente indica que el tráfico llegó a la interfaz de red pero fue bloqueado antes de llegar al sistema operativo.
-Utiliza los siguientes comandos específicos de la plataforma para buscar reglas de cortafuegos que puedan estar bloqueando el tráfico y evitando que llegue al Agent. +Utilice los siguientes comandos específicos de la plataforma para verificar si hay reglas de firewall que puedan estar impidiendo que el tráfico llegue al Agent. {{< tabs >}} {{% tab "Linux" %}} -Linux dispone de varios tipos de cortafuegos, como `iptables`, `nftables` o `ufw`. Dependiendo de cuál esté en uso, se pueden utilizar los siguientes comandos: +Linux tiene varios tipos de firewalls, como `iptables`, `nftables` o `ufw`. Dependiendo de cuál esté en uso, se pueden utilizar los siguientes comandos: - `sudo iptables -S` -- `sudo nft lista ruleset` +- `sudo nft list ruleset` - `sudo ufw status` -Busca si hay reglas que bloquean el tráfico UDP en los puertos configurados. +Busque reglas que bloqueen el tráfico UDP en los puertos configurados. {{% /tab %}} {{% tab "Windows" %}} -A partir de la versión `7.67`, el comando `Datadog-Agent diagnose` del Agent busca automáticamente reglas de bloqueo del cortafuegos y muestra advertencias si encuentra alguna. +A partir de la versión `7.67`, el comando `agent.exe diagnose` del Agent verifica automáticamente si hay reglas de firewall que bloqueen el tráfico y muestra advertencias si encuentra alguna. -Para inspeccionar manualmente las reglas del cortafuegos: +Para inspeccionar manualmente las reglas de firewall: ```powershell Get-NetFirewallRule -Action Block | ForEach-Object { @@ -186,52 +216,52 @@ Get-NetFirewallRule -Action Block | ForEach-Object { } | Format-Table -AutoSize ``` -Busca normas donde: +Busque reglas donde: - **Dirección** es entrante -- **El protocolo** es UDP -- **LocalPort** coincide con uno de tus puertos configurados +- **Protocolo** es UDP +- **PuertoLocal** coincide con uno de sus puertos configurados {{% /tab %}} -{{% tab "MacOS" %}} +{{% tab "macOS" %}} -Ejecuta el siguiente comando para revisar las reglas de Packet Filter (pf): +Ejecute el siguiente comando para revisar las reglas de Packet Filter (pf): ```shell sudo pfctl -sr ``` -Busca cualquier regla que bloquee el tráfico UDP en los puertos configurados. Por ejemplo:`block drop in proto udp from any to any port = `. +Busque cualquier regla que bloquee el tráfico UDP en sus puertos configurados. Por ejemplo:`block drop in proto udp from any to any port = `. {{% /tab %}} {{< /tabs >}} -### No se reciben trampas para los dispositivos +### Traps no se reciben para los dispositivos {#traps-not-being-received-for-devices} -1. Comprueba el archivo de Datadog `agent.log` para asegurarte de que puedes enlazarte al puerto de trampas. El siguiente error indica que no te puedes enlazar con el puerto de trampas: +1. Verifique el archivo `agent.log` de Datadog para asegurarse de que puede vincularse al puerto de traps. El siguiente error indica que no puede vincularse al puerto de tramas: ``` Failed to start snmp-traps server: error happened when listening for SNMP Traps: listen udp 0.0.0.0:162: bind: permission denied ``` **Solución**: - Añade una capacidad de enlace de red al binario del Agent, que permite al Agent vincularse a puertos reservados: + Agregue una capacidad de vinculación de red (net bind) al binario del Agent, lo que permite que el Agent se vincule a puertos reservados: - ``` + ```shell sudo setcap 'cap_net_bind_service=+ep' /opt/datadog-agent/bin/agent/agent ``` -### Trampas con formato incorrecto +### Traps con formato incorrecto {#traps-incorrectly-formatted} -1. Ve al dashboard para solucionar problemas en NDM: +1. Navegue al Dashboard de solución de problemas en NDM: - {{< img src="/network_device_monitoring/troubleshooting/ndm_troubleshooting_dashboard.png" alt="La página de Network Device Monitoring muestra el menú desplegable de Dashboard con el dashboard Solucionar problemas de NDM resaltado." style="width:80%;" >}} + {{< img src="/network_device_monitoring/troubleshooting/ndm_troubleshooting_dashboard.png" alt="La página de Network Device Monitoring que muestra el menú desplegable del Dashboard con el NDM Troubleshooting Dashboard resaltado." style="width:80%;" >}} -2. Desplázate hasta el widget Trampas y observa el gráfico **Trampas incorrectamente formateadas**. Si es distinto de cero, probablemente significa que la autenticación en el recopilador NDM y el dispositivo no coinciden. +2. Desplácese hacia abajo hasta el widget de Traps y observe el gráfico {{< ui >}}Traps incorrectly formatted{{< /ui >}}. Si esto no es cero, probablemente significa que la autenticación en el recopilador de NDM y el dispositivo no coinciden. - {{< img src="/network_device_monitoring/troubleshooting/ndm_traps_dashboard.png" alt="El dashboard de Solucionar problemas de NDM qemuestra la sección del widget Trampas." style="width:100%;" >}} + {{< img src="/network_device_monitoring/troubleshooting/ndm_traps_dashboard.png" alt="El dashboard de resolución de problemas de NDM que muestra la sección del widget de tramas." style="width:100%;" >}} **Solución**: - Comprueba que las siguientes configuraciones del archivo `datadog.yaml` coinciden con las configuraciones de las trampas de los dispositivos de los que faltan trampas: + Verify that the following configurations in the `datadog.yaml` file align with the trap settings on the devices from which traps are missing: ``` ## @param community_strings - list of strings - required @@ -265,7 +295,7 @@ Busca cualquier regla que bloquee el tráfico UDP en los puertos configurados. P # privProtocol: ``` -## Referencias adicionales +## Further Reading {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/observability_pipelines/_index.md b/hugo/content/es/observability_pipelines/_index.md index 619892ee06a..a0fd584afcb 100644 --- a/hugo/content/es/observability_pipelines/_index.md +++ b/hugo/content/es/observability_pipelines/_index.md @@ -1,23 +1,23 @@ --- -description: Aprenda cómo Observability Pipelines le permite recopilar, procesar y - enrutar registros, métricas y trazas dentro de su propia infraestructura hacia destinos +description: Descubra cómo Observability Pipelines le permite recopilar, procesar + y enrutar registros y métricas dentro de su propia infraestructura hacia destinos como Datadog, Amazon S3, Splunk y Microsoft Sentinel. disable_toc: false further_reading: - link: /observability_pipelines/configuration/explore_templates/ - tag: Documentación + tag: documentación text: Configure Pipelines - link: /observability_pipelines/configuration/set_up_pipelines/ - tag: Documentación + tag: documentación text: Explore casos de uso y plantillas - link: /observability_pipelines/configuration/install_the_worker/ - tag: Documentación + tag: documentación text: Instale el Observability Pipelines Worker - link: /agent/configuration/dual-shipping/#yaml-configuration - tag: Documentación + tag: documentación text: Envío dual con Observability Pipelines - link: /observability_pipelines/guide/strategies_for_reducing_log_volume/ - tag: Documentación + tag: documentación text: Estrategias para reducir el volumen de registros - link: https://learn.datadoghq.com/courses/course-getting-started-observability-pipelines tag: Centro de aprendizaje @@ -31,59 +31,59 @@ further_reading: text: Envíe datos de OTel desde aplicaciones de IA a ClickHouse y Datadog usando Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-sensitive-data-redaction/ - tag: Blog + tag: blog text: Redacte datos confidenciales de sus registros de forma local usando Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-dual-ship-logs/ - tag: Blog + tag: blog text: Envío dual de registros con Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-log-volume-control/ - tag: Blog + tag: blog text: Controle sus volúmenes de registros con Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-archiving/ - tag: Blog + tag: blog text: Archive sus registros con Observability Pipelines para una migración sencilla y asequible a Datadog - link: https://www.datadoghq.com/blog/observability-pipelines/ - tag: Blog + tag: blog text: Agregue, procese y enrute registros fácilmente con Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-stream-logs-in-ocsf-format/ - tag: Blog + tag: blog text: Transmita registros en formato OCSF a sus proveedores de seguridad o lagos de datos preferidos con Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-route-logs-microsoft-sentinel/ - tag: Blog + tag: blog text: Simplifique su migración de SIEM a Microsoft Sentinel con Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/sled-observability-pipelines/ - tag: Blog + tag: blog text: Cómo las organizaciones estatales, locales y educativas pueden gestionar registros de manera flexible y eficiente usando Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/optimize-high-volume-logs/ - tag: Blog + tag: blog text: Cómo optimizar datos de registro de alto volumen sin comprometer la visibilidad - link: https://www.datadoghq.com/blog/archive-search/ - tag: Blog + tag: blog text: Busque en sus registros históricos de manera más eficiente con Datadog Archive Search - link: https://www.datadoghq.com/blog/introducing-datadog-cloudprem/ - tag: Blog + tag: blog text: Almacene y busque registros a escala de petabytes en su propia infraestructura con Datadog BYOC Logs - link: https://www.datadoghq.com/blog/manage-high-volume-logs-with-observability-pipeline-packs/ - tag: Blog + tag: blog text: Controle los costos de registros en cualquier SIEM o lago de datos utilizando Packs con Observability Pipelines - link: https://www.datadoghq.com/blog/observability-pipelines-otel-cost-control/ - tag: Blog + tag: blog text: Utilice OpenTelemetry con Observability Pipelines para la recopilación de registros y el control de costos neutrales respecto al proveedor - link: https://www.datadoghq.com/blog/observability-pipelines-mssp - tag: Blog + tag: blog text: Simplifique la recopilación y agregación de registros para MSSP con Datadog Observability Pipelines - link: https://www.datadoghq.com/blog/manage-metrics-cost-control-with-observability-pipelines - tag: Blog + tag: blog text: Administre el volumen de métricas y las etiquetas en su entorno con Observability Pipelines title: Observability Pipelines @@ -92,7 +92,7 @@ title: Observability Pipelines {{< img src="observability_pipelines/op_marketecture_06042025.png" alt="Un gráfico que muestra datos siendo agregados desde una variedad de fuentes, procesados y enriquecidos por el Observability Pipelines Worker en su propio entorno, y luego siendo dirigidos a los destinos de seguridad, análisis y almacenamiento de su elección" style="width:100%;" >}} -Datadog Observability Pipelines le permite recopilar y procesar {{< tooltip text="logs, metrics, and traces" tooltip="Comuníquese con su gerente de cuenta para analizar los casos de uso y los precios." >}} dentro de su propia infraestructura, y luego dirija los datos a diferentes destinos. Le brinda control sobre sus datos de observabilidad antes de que salgan de su entorno. +Datadog Observability Pipelines le permite recopilar y procesar registros y métricas dentro de su propia infraestructura, y luego enrutar los datos a diferentes destinos. Le brinda control sobre sus datos de observabilidad antes de que salgan de su entorno. Con plantillas listas para usar, puede crear canalizaciones que redacten datos confidenciales, enriquezcan datos, filtren eventos ruidosos y dirijan datos a destinos como Datadog, herramientas SIEM o almacenamiento en la nube. @@ -136,7 +136,7 @@ Observability Pipelines incluye plantillas predefinidas para flujos de trabajo c ### Plantillas {#templates} {{< tabs >}} -{{% tab "Logs" %}} +{{% tab "Registros" %}} | Plantilla | Descripción | |----------|-------------| @@ -155,13 +155,6 @@ Observability Pipelines incluye plantillas predefinidas para flujos de trabajo c |----------|-------------| | Gobernanza de etiquetas de métricas | Administre la calidad y el volumen de sus métricas conservando solo las que necesita, estandarizando el etiquetado de métricas y eliminando etiquetas no deseadas para evitar una alta cardinalidad. | -{{% /tab %}} -{{% tab "Trazas" %}} - -| Plantilla | Descripción | -|----------|-------------| -| Muestreo de trazas | Ingeste, procese y enrute trazas para controlar los costos mientras conserva las trazas que necesita para la resolución de problemas y el análisis. | - {{% /tab %}} {{< /tabs >}} diff --git a/hugo/content/es/observability_pipelines/destinations/opensearch.md b/hugo/content/es/observability_pipelines/destinations/opensearch.md index 39a48189027..b62603c22f7 100644 --- a/hugo/content/es/observability_pipelines/destinations/opensearch.md +++ b/hugo/content/es/observability_pipelines/destinations/opensearch.md @@ -6,21 +6,21 @@ products: - icon: logs name: Registros url: /observability_pipelines/configuration/?tab=logs#pipeline-types -title: Destino de OpenSearch +title: Destino OpenSearch --- {{< product-availability >}} ## Descripción general {#overview} -Utilice el destino de OpenSearch de Observability Pipelines para enviar registros a OpenSearch. +Utilice el destino OpenSearch de Observability Pipelines para enviar registros a OpenSearch. ## Configuración {#setup} -
Para la gestión de secretos: Solo ingrese los identificadores para la URL del punto de conexión, el nombre de usuario y la contraseña de OpenSearch. No ingrese los valores reales.
+
Para la gestión de secretos: Solo ingrese los identificadores para la URL del punto de conexión de OpenSearch, el nombre de usuario y la contraseña. No ingrese los valores reales.
-Configure el destino de OpenSearch cuando [configure una canalización][6]. Puede configurar una canalización en la [UI][1], utilizando la [API][7] o con [Terraform][8]. Los pasos en esta sección se configuran en la UI. +Configure el destino OpenSearch cuando [configure un pipeline][6]. Puede configurar un pipeline en la [UI][1], utilizando la [API][7] o con [Terraform][8]. Los pasos de esta sección se configuran en la interfaz de usuario. -Después de seleccionar el destino de OpenSearch en la UI de la canalización: +Después de seleccionar el destino OpenSearch en la UI del pipeline: 1. Ingrese el identificador para la URL del punto de conexión de OpenSearch. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). 1. Ingrese el identificador para su nombre de usuario de OpenSearch. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). @@ -28,17 +28,17 @@ Después de seleccionar el destino de OpenSearch en la UI de la canalización: 1. En el menú desplegable {{< ui >}}Mode{{< /ui >}}, seleccione {{< ui >}}Bulk{{< /ui >}} o {{< ui >}}Data streams{{< /ui >}}. - {{< ui >}}Bulk{{< /ui >}} modo - Utiliza la [Bulk API][4] de OpenSearch para enviar eventos por lotes directamente a un índice estándar. - - Elija este modo cuando desee un control directo sobre la nomenclatura de índices y la gestión del ciclo de vida. Los datos se añaden al índice que especifique, y usted es responsable de gestionar los rollovers, las eliminaciones y los mappings. + - Elija este modo cuando desee un control directo sobre la nomenclatura de índices y la gestión del ciclo de vida. Los datos se añaden al índice que especifique, y usted es responsable de manejar rollovers, eliminaciones y mapeos. - Para configurar el modo {{< ui >}}Bulk{{< /ui >}}: - - En el campo {{< ui >}}Index{{< /ui >}}, ingrese opcionalmente el nombre del índice de OpenSearch. Puede usar la [sintaxis de plantilla][3] para enrutar dinámicamente los registros a diferentes índices según campos específicos de sus registros, por ejemplo `logs-{{service}}`. - - {{< ui >}}Data streams{{< /ui >}} modo + - En el campo {{< ui >}}Index{{< /ui >}}, ingrese opcionalmente el nombre del índice de OpenSearch. Puede utilizar [sintaxis de plantilla][3] para enrutar dinámicamente los registros a diferentes índices según campos específicos en sus registros, por ejemplo `logs-{{service}}`. + - {{< ui >}}Data streams{{< /ui >}}modo - Uses [OpenSearch Data Streams][5] for log storage. Data streams automatically manage backing indexes and rollovers, making them ideal for timeseries log data. - Choose this mode when you want OpenSearch to manage the index lifecycle for you. Data streams ensures smooth rollovers, Index Lifecycle Management (ILM) compatibility, and optimized handling of time-based data. - - To configure {{< ui >}}Data streams{{< /ui >}} modo, defina opcionalmente el nombre del flujo de datos (el valor predeterminado es `logs-generic-default`) by entering the following information: - - In the {{< ui >}}Type{{< /ui >}} campo, ingrese la categoría de los datos que se están ingiriendo, por ejemplo `logs`. - - In the {{< ui >}}Dataset{{< /ui >}} campo, especifique el formato o la fuente de datos que describe la estructura, por ejemplo `apache`. - - In the {{< ui >}}Namespace{{< /ui >}} campo, ingrese la agrupación para organizar sus flujos de datos, por ejemplo `production`. - - You can use [template syntax][3] for the {{< ui >}}Type{{< /ui >}}, {{< ui >}}Dataset{{< /ui >}} y {{< ui >}}Namespace{{< /ui >}} campos para construir dinámicamente el nombre del flujo de datos basado en campos específicos de sus registros. + - To configure {{< ui >}}Data streams{{< /ui >}}modo, defina opcionalmente el nombre del flujo de datos (el predeterminado es `logs-generic-default`) by entering the following information: + - In the {{< ui >}}Type{{< /ui >}}campo, ingrese la categoría de los datos que se están ingiriendo, por ejemplo `logs`. + - In the {{< ui >}}Dataset{{< /ui >}}campo, especifique el formato o la fuente de datos que describe la estructura, por ejemplo `apache`. + - In the {{< ui >}}Namespace{{< /ui >}}campo, ingrese la agrupación para organizar sus flujos de datos, por ejemplo `production`. + - You can use [template syntax][3] for the {{< ui >}}Type{{< /ui >}}, {{< ui >}}Dataset{{< /ui >}} y {{< ui >}}Namespace{{< /ui >}} campos para construir dinámicamente el nombre del flujo de datos según campos específicos en sus registros. - In the UI, there is a preview of the data stream name you configured. With the above example inputs, the data stream name that the Worker writes to is `logs-apache-production`. {{% observability_pipelines/secrets_env_var_note %}} @@ -47,13 +47,13 @@ Después de seleccionar el destino de OpenSearch en la UI de la canalización: #### Índice de OpenSearch {#opensearch-index} -Ingrese el nombre del índice de OpenSearch. Consulte la [sintaxis de plantilla][3] si desea enrutar registros a diferentes índices según campos específicos de sus registros. +Ingrese el nombre del índice de OpenSearch. Consulte la [sintaxis de plantilla][3] si desea enrutar registros a diferentes índices según campos específicos en sus registros. #### Almacenamiento en búfer {#buffering} {{% observability_pipelines/destination_buffer %}} -## Valores predeterminados de secreto {#secret-defaults} +## Valores predeterminados de Secret {#secret-defaults} {{% observability_pipelines/set_secrets_intro %}} @@ -78,13 +78,13 @@ Ingrese el nombre del índice de OpenSearch. Consulte la [sintaxis de plantilla] ## Métricas de salud {#health-metrics} -Para [métricas de componente][9] y [métricas de búfer de destino][10] emitidas por todos los destinos, consulte la documentación de [Pipelines Usage Metrics][11]. Para filtrar o agrupar por métricas de destino de Elasticsearch, use la etiqueta `component_type:elasticsearch`. +Para [métricas de componentes][9] y [métricas de búfer de destino][10] emitidas por todos los destinos, consulte la documentación de [Métricas de uso de Pipelines][11]. Para filtrar o agrupar por métricas de destino de Elasticsearch, utilice la etiqueta `component_type:elasticsearch`. ## Cómo funciona el destino {#how-the-destination-works} ### Procesamiento por lotes de eventos {#event-batching} -Un lote de eventos se vacía cuando se cumple uno de estos parámetros. Consulte [Procesamiento por lotes de eventos de destinos][2] para obtener más información. +Un lote de eventos se vacía cuando se cumple uno de estos parámetros. Consulte [Agrupamiento de eventos de destino][2] para obtener más información. | Máximo de eventos | Tamaño máximo (MB) | Tiempo de espera (segundos) | |----------------|-------------------|---------------------| diff --git a/hugo/content/es/observability_pipelines/processors/generate_metrics.md b/hugo/content/es/observability_pipelines/processors/generate_metrics.md index 06c09b7af4e..615783fbd58 100644 --- a/hugo/content/es/observability_pipelines/processors/generate_metrics.md +++ b/hugo/content/es/observability_pipelines/processors/generate_metrics.md @@ -1,4 +1,6 @@ --- +description: Aprenda a usar el procesador Generate Metrics para crear métricas de + conteo, gauge o distribución a partir de registros que coincidan con una consulta. disable_toc: false products: - icon: logs @@ -12,7 +14,7 @@ title: Procesador Generar métricas basadas en registros Se utilizan muchos tipos de registros para realizar un seguimiento de las tendencias, como los KPI, durante largos períodos de tiempo. Generar métricas a partir de sus registros es una forma rentable de resumir datos provenientes de registros de alto volumen, como los registros de CDN, registros de flujo de VPC, registros de firewall y registros de red. Utilice el procesador Generar métricas para generar métricas de conteo, gauge o distribución a partir de registros que coincidan con una consulta, y envíe las métricas a su destino. -**Nota**: Las métricas generadas a partir de registros y enviadas a Datadog son [Custom Metrics][1] y se facturan en consecuencia. Consulte [Custom Metrics Billing][2] para obtener más información. +**Nota**: Las métricas generadas a partir de registros y enviadas a Datadog son [Métricas personalizadas][1] y se facturan en consecuencia. Consulte [Custom Metrics Billing][2] para obtener más información. ## Configuración {#setup} diff --git a/hugo/content/es/observability_pipelines/sources/_index.md b/hugo/content/es/observability_pipelines/sources/_index.md index be7b62f8b36..ebd1d14398c 100644 --- a/hugo/content/es/observability_pipelines/sources/_index.md +++ b/hugo/content/es/observability_pipelines/sources/_index.md @@ -1,44 +1,107 @@ --- +aliases: +- /es/observability_pipelines/sources/prometheus +description: Obtenga información sobre las fuentes disponibles para el Observability + Pipelines Worker. disable_toc: false further_reading: -- link: /observability_pipelines/set_up_pipelines/ +- link: /observability_pipelines/configuration/set_up_pipelines/ tag: Documentación - text: Configurar pipelines + text: Configure Pipelines - link: /observability_pipelines/processors/ - tag: Documentation - text: Procesadores para tus pipelines + tag: Documentación + text: Procesadores para sus pipelines - link: /observability_pipelines/destinations/ - tag: Documentation - text: Destinos de los pipelines de observabilidad + tag: Documentación + text: Destinos de Observability Pipelines title: Fuentes --- - -## Información general - -Utiliza las fuentes de pipelines de observabilidad para recibir logs de tus diferentes fuentes de logs. - -Selecciona y configura tu fuente cuando crees un pipeline en la interfaz de usuario. Este es el paso 3 del proceso de configuración de pipeline:s - -1. Ve a [Pipelines de observabilidad][1]. -1. Selecciona una plantilla. -1. Selecciona y configura tu fuente. -1. Selecciona y configura tus destinos. -1. Configura tus procesadores. -1. Instalar el worker de pipelines de observabilidad - -Las fuentes tienen diferentes requisitos previos y parámetros. Algunas fuentes también deben configurarse para enviar logs al worker de pipelines de observabilidad. - -## Campos de metadatos estándar - -Todas las fuentes añaden los siguientes campos de metadatos estándar a los eventos ingeridos: +## Descripción general {#overview} + +Utilice las fuentes de Observability Pipelines para recibir registros o métricas de diferentes fuentes de datos. Las fuentes tienen diferentes requisitos previos y configuraciones. Algunas fuentes también deben configurarse para enviar datos al Observability Pipelines Worker. + +Seleccione una fuente en el menú de navegación de la izquierda para ver más información sobre ella. + +## Fuentes {#sources} + +Estas son las fuentes disponibles: + +{{< tabs >}} +{{% tab "Registros" %}} + +- [Akamai DataStream][1] +- [Amazon Data Firehose][2] +- [Amazon S3][3] +- [Azure Event Hubs][4] +- [Cloudflare Logpush][5] +- [Datadog Agent][6] +- [Filebeat][7] +- [Fluentd and Fluent Bit][8] +- [Google Pub/Sub][9] +- [HTTP Client][10] +- [HTTP Server][11] +- [Kafka][12] +- [Lambda Extension][13] +- [Lambda Forwarder][14] +- [Logstash][15] +- [MySQL][16] +- [Okta][17] +- [OpenTelemetry][18] +- [Socket][19] +- [Splunk HTTP Event Collector (HEC)][20] +- [Splunk Heavy o Universal Forwarders (TCP)][21] +- [Sumo Logic Hosted Collector][22] +- [Syslog][23] +- [WebSocket][24] + +[1]: /es/observability_pipelines/sources/akamai_datastream/ +[2]: /es/observability_pipelines/sources/amazon_data_firehose/ +[3]: /es/observability_pipelines/sources/amazon_s3/ +[4]: /es/observability_pipelines/sources/azure_event_hubs/ +[5]: /es/observability_pipelines/sources/cloudflare_logpush/ +[6]: /es/observability_pipelines/sources/datadog_agent/ +[7]: /es/observability_pipelines/sources/filebeat/ +[8]: /es/observability_pipelines/sources/fluent/ +[9]: /es/observability_pipelines/sources/google_pubsub/ +[10]: /es/observability_pipelines/sources/http_client/ +[11]: /es/observability_pipelines/sources/http_server/ +[12]: /es/observability_pipelines/sources/kafka/ +[13]: /es/observability_pipelines/sources/lambda_extension/ +[14]: /es/observability_pipelines/sources/lambda_forwarder/ +[15]: /es/observability_pipelines/sources/logstash/ +[16]: /es/observability_pipelines/sources/mysql/ +[17]: /es/observability_pipelines/sources/okta/ +[18]: /es/observability_pipelines/sources/opentelemetry/ +[19]: /es/observability_pipelines/sources/socket/ +[20]: /es/observability_pipelines/sources/splunk_hec/ +[21]: /es/observability_pipelines/sources/splunk_tcp/ +[22]: /es/observability_pipelines/sources/sumo_logic/ +[23]: /es/observability_pipelines/sources/syslog/ +[24]: /es/observability_pipelines/sources/websocket/ + +{{% /tab %}} +{{% tab "Métricas" %}} + +- [Datadog Agent][1] +- [OpenTelemetry][2] + +[1]: /es/observability_pipelines/sources/datadog_agent/ +[2]: /es/observability_pipelines/sources/opentelemetry/ + +{{% /tab %}} +{{< /tabs >}} + +## Campos de metadatos estándar {#standard-metadata-fields} + +Todas las fuentes agregan los siguientes campos de metadatos estándar a los eventos ingeridos: | Nombre del campo | Tipo de valor | Ejemplo | | -------------- | -------------- | ---------------------------- | -| `hostname` | Cadena | `"ip-34-2-553.us.test"` | -| `timestamp` | Cadena | `"2024-06-17T22:25:55.439Z"` | -| `source_type` | Cadena | `"splunk_tcp"` | +| `hostname` | String | `"ip-34-2-553.us.test"` | +| `timestamp` | String | `"2024-06-17T22:25:55.439Z"` | +| `source_type` | String | `"splunk_tcp"` | -Por ejemplo, si se trata del evento sin procesar: +Por ejemplo, si este es el evento sin procesar: ``` { @@ -57,15 +120,52 @@ Entonces, el evento enriquecido con los campos de metadatos estándar es: } ``` -Podrás ver estos campos de metadatos estándar cuando utilices el [comando `tap`][2] para ver los eventos enviados a través de la fuente. +Puede ver estos campos de metadatos estándar cuando utiliza el [`tap` comando][2] para ver los eventos enviados a través de la fuente. + +Después de que los eventos son ingeridos por la fuente, se envían a diferentes procesadores y destinos que podrían actualizar esos campos. Por ejemplo, si el evento se envía al destino Datadog Logs, el campo de marca de tiempo se convierte al formato UNIX. + +**Nota**: La métrica `bytes in per second` en la interfaz de usuario es para eventos sin procesar ingeridos, no para eventos enriquecidos. + +## Certificados TLS {#tls-certificates} + +Habilite TLS para Observability Pipelines para garantizar que los datos estén cifrados durante el tránsito. Esto evita que los atacantes manipulen sus datos. + +Observability Pipelines no acepta certificados autofirmados de forma predeterminada porque no proporcionan una verificación de confianza segura y pueden exponer potencialmente su entorno a ataques de intermediario (man-in-the-middle). + +Para verificar si su certificado está autofirmado, ejecute este comando: + +``` +openssl verify -CAfile certificate.pem certificate.pem +``` + +Si el certificado está autofirmado y se verifica contra sí mismo, el resultado es: + +``` +certificate.pem: OK +``` + +De lo contrario, verá el error `unable to get local issuer certificate`. + +En lugar de usar un certificado autofirmado, Datadog recomienda lo siguiente: + +1. Utilice un certificado firmado por Certificate Authority (CA). +2. Si no puede usar un certificado firmado por CA, utilice un certificado de [Let's Encrypt][3]. + +Si debe usar un certificado autofirmado porque los enfoques anteriores no son posibles, puede configurar su entorno para confiar en el certificado autofirmado en el servidor de Observability Pipelines Worker. + +
Datadog no recomienda certificados autofirmados. Son menos seguros y no son apropiados para producción o para uso expuesto a internet. Si debe usar certificados autofirmados, limite su uso solo a pruebas internas.
-Una vez que los eventos son ingeridos por la fuente, se envían a diferentes procesadores y destinos que pueden actualizar esos campos. Por ejemplo, si el evento se envía al destino Logs de Datadog, el campo de fecha y hora se convierte al formato UNIX. +Para que el servidor del Worker confíe en el certificado autofirmado: -**Nota**: La métrica `bytes in per second` en la interfaz de usuario es para eventos ingeridos sin procesar y no enriquecidos. +- En servidores Linux, instale el certificado en el almacén de confianza del SO. +- En Kubernetes, puede: + - Construya una imagen de contenedor personalizada que incluya el certificado. + - Monte el certificado y actualice manualmente el almacén de confianza del contenedor. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/observability-pipelines -[2]: /es/observability_pipelines/troubleshooting/#use-tap-to-see-your-data \ No newline at end of file +[2]: /es/observability_pipelines/monitoring_and_troubleshooting/troubleshooting/#use-tap-to-see-your-data +[3]: https://letsencrypt.org/ \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/sources/http_server.md b/hugo/content/es/observability_pipelines/sources/http_server.md index 2ff3d68c404..fdd6a8a6866 100644 --- a/hugo/content/es/observability_pipelines/sources/http_server.md +++ b/hugo/content/es/observability_pipelines/sources/http_server.md @@ -1,87 +1,103 @@ --- +description: Aprenda a recopilar registros de cliente HTTP utilizando la fuente HTTP/S + Server del Observability Pipelines Worker. disable_toc: false products: - icon: logs - name: Logs + name: Registros url: /observability_pipelines/configuration/?tab=logs#pipeline-types -title: Fuente del servidor HTTP +title: Fuente HTTP/S Server --- - {{< product-availability >}} -Utiliza la fuente del servidor HTTP/S de Observability Pipelines para recopilar logs HTTP del cliente. Selecciona y configura esta fuente cuando [configures un pipeline][1]. +## Descripción general {#overview} + +Utilice la fuente HTTP/S Server de Observability Pipelines para recopilar registros de cliente HTTP. -También puedes [enviar logs de AWS con el Datadog Lambda Forwarder a Observability Pipelines](#send-aws-vended-log-with-the-datadog-lambda-forwarder-to-observability-pipelines). +También puede [enviar registros proporcionados por AWS con Datadog Lambda Forwarder a Observability Pipelines](#send-aws-vended-logs-with-the-datadog-lambda-forwarder-to-observability-pipelines). -## Requisitos previos +## Requisitos previos {#prerequisites} {{% observability_pipelines/prerequisites/http_server %}} -## Configurar la fuente en la interfaz de usuario del pipeline +## Configuración {#setup} + +
Para la gestión de secretos: solo ingrese los identificadores para la dirección del servidor HTTP/S y, si corresponde, el nombre de usuario y la contraseña para la autorización simple (también conocida como básica) y la frase de contraseña de la clave TLS. No ingrese los valores reales.
+ +Configure esta fuente cuando [configure un pipeline][3]. Puede configurar un pipeline en la [UI][1], utilizando la [API][4] o con [Terraform][5]. Las instrucciones de esta sección son para configurar la fuente en la interfaz de usuario. + +Después de seleccionar la fuente HTTP/S Server en la pipeline UI: + +1. Ingrese el identificador para su dirección de servidor HTTP/S. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). + - **Nota**: Ingrese únicamente el identificador para la dirección. **No** ingrese la dirección real. +1. Seleccione su estrategia de autorización. Si seleccionó {{< ui >}}Plain{{< /ui >}}: + - Ingrese los identificadores para su nombre de usuario y contraseña del servidor HTTP/S. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). +1. (Opcional) Configure tokens de autenticación. Consulte [Configurar tokens de autenticación](#configure-authentication-tokens) para obtener más detalles. +1. Seleccione el decodificador que desea utilizar en los mensajes HTTP. Sus registros de cliente HTTP deben estar en este formato. **Nota**: Si selecciona la decodificación `bytes`, el registro sin procesar se almacena en el campo `message`. + +{{% observability_pipelines/secrets_env_var_note %}} + +### Configuración opcional {#optional-settings} + +#### Habilitar TLS {#enable-tls} -Selecciona y configura esta fuente cuando [configures un pipeline][1]. La siguiente información corresponde a la configuración de la fuente en la interfaz de usuario del pipeline. +{{% observability_pipelines/tls_settings %}} -Para configurar tu fuente de servidor HTTP/S, introduce lo siguiente: +{{% observability_pipelines/tls_settings_mtls %}} -
Introduce únicamente los identificadores de la dirección del servidor HTTP y, si procede, el nombre de usuario y la contraseña para la autorización simple (también conocida como básica) y la contraseña de clave TLS. No introduzcas los valores reales.
+#### Configurar tokens de autenticación {#configure-authentication-tokens} -1. Introduce el identificador para tu dirección de servidor HTTP. Si lo dejas en blanco, se utilizará el [predeterminado](#set-secrets). - - **Nota**: Introduce solo el identificador de la dirección. No introduzcas la dirección real. -1. Selecciona tu estrategia de autorización. Si has seleccionado **Simple**: - - Introduce los identificadores para tu nombre de usuario y contraseña del servidor HTTP. Si lo dejas en blanco, se utilizará el [predeterminado](#set-secrets). -1. Selecciona el descodificador que deseas utilizar en los mensajes HTTP. Tus logs de cliente HTTP deben tener este formato. **Nota**: Si seleccionas la decodificación `bytes`, el log sin formato se almacena en el campo `message`. +Si almacena tokens como credenciales en el encabezado de autorización de su solicitud HTTP, puede configurar el Worker para verificar si las solicitudes HTTP entrantes tienen un token válido. Los eventos de solicitud que no tienen un token válido se descartan. El Worker también puede buscar un punto de conexión o una dirección IP en lugar de un encabezado. -### Ajustes opcionales +**Nota**: No puede configurar tokens de autenticación con la estrategia de autorización {{< ui >}}Plain{{< /ui >}}. -Alterna al interruptor para **Enable TLS** (Activar TLS). Si activas TLS, se requieren los siguientes archivos de certificados y claves.
**Nota**: Todas las rutas a los archivos son relativas al directorio de datos de configuración, que es `/var/lib/observability-pipelines-worker/config/` por defecto. Consulta [Configuraciones avanzadas del worker][2] para obtener más información. El archivo debe ser propiedad del usuario `observability-pipelines-worker group` y `observability-pipelines-worker` o al menos legible por el grupo o usuario. -- Introduce el identificador para tu contraseña de clave del servidor HTTP. Si lo dejas en blanco, se utilizará el [predeterminado](#set-secrets). -- `Server Certificate Path`: la ruta al archivo del certificado que ha sido firmado por el archivo raíz de tu autoridad de certificación (CA) en DER o PEM (X.509). -- `CA Certificate Path`: la ruta al archivo del certificado que es el archivo raíz de tu autoridad de certificación (CA) en DER o PEM (X.509). -- `Private Key Path`: la ruta al archivo de clave privada `.key` que pertenece a la ruta de tu certificado de servidor en formato DER o PEM (PKCS #8). +{{% observability_pipelines/configure_authentication_tokens %}} -## Establecer secretos +## Valores predeterminados de Secret {#secret-defaults} {{% observability_pipelines/set_secrets_intro %}} {{< tabs >}} -{{% tab "Secrets Management" %}} - -- Identificador de la dirección del servidor HTTP: - - Hace referencia a la dirección del socket, como `0.0.0.0:9997`, en la que el worker de Observability Pipelines escucha los logs del cliente HTTP. - - El identificador por defecto es `SOURCE_HTTP_SERVER_ADDRESS`. -- Identificador de frase de contraseña TLS del servidor HTTP (cuando TLS está activado): - - El identificador por defecto es `SOURCE_HTTP_SERVER_KEY_PASS`. -- Si utilizas la autenticación simple: - - Identificador del nombre de usuario del servidor HTTP: - - El identificador por defecto es `SOURCE_HTTP_SERVER_USERNAME`. - - Identificador de contraseña del servidor HTTP: - - El identificador por defecto es `SOURCE_HTTP_SERVER_PASSWORD`. +{{% tab "Gestión de secretos" %}} + +- Identificador de dirección del servidor HTTP/S: + - Hace referencia a la dirección del socket, como `0.0.0.0:9997`, en la que Observability Pipelines Worker escucha para recibir registros de cliente HTTP. + - El identificador predeterminado es `SOURCE_HTTP_SERVER_ADDRESS`. +- Identificador de frase de contraseña TLS del servidor HTTP/S (cuando TLS está habilitado): + - El identificador predeterminado es `SOURCE_HTTP_SERVER_KEY_PASS`. +- Si utiliza autenticación simple: + - Identificador de nombre de usuario del servidor HTTP/S: + - El identificador predeterminado es `SOURCE_HTTP_SERVER_USERNAME`. + - Identificador de contraseña del servidor HTTP/S: + - El identificador predeterminado es `SOURCE_HTTP_SERVER_PASSWORD`. {{% /tab %}} -{{% tab "Environment Variables" %}} +{{% tab "Variables de entorno" %}} {{% observability_pipelines/configure_existing_pipelines/source_env_vars/http_server %}} {{% /tab %}} {{< /tabs >}} -## Enviar logs de AWS con el Datadog Lambda Forwarder a Observability Pipelines +## Envíe registros proporcionados por AWS con el Datadog Lambda Forwarder a Observability Pipelines {#send-aws-vended-logs-with-the-datadog-lambda-forwarder-to-observability-pipelines} -Para enviar logs de AWS a Observability Pipelines con la fuente del servidor HTTP/S: +Para enviar registros proporcionados por AWS a Observability Pipelines con la fuente HTTP/S Server: -- [Configura un pipeline con la fuente del servidor HTTP/S](#set-up-a-pipeline). -- [Despliega el Datadog Forwarder](#deploy-the-datadog-lambda-forwarder). +- [Configure un pipeline con la fuente HTTP/S Server](#set-up-a-pipeline). +- [Implemente el Datadog Forwarder](#deploy-the-datadog-lambda-forwarder). -**Nota**: Esto está disponible para las versiones del worker 2.51 o posteriores. +**Nota**: Esto está disponible para versiones del Worker 2.15 o posteriores. -### Establecer un pipeline +### Configure un pipeline {#set-up-a-pipeline} {{% observability_pipelines/lambda_forwarder/pipeline_setup %}} -### Despliegue del Datadog Lambda Forwarder +### Implemente el Datadog Lambda Forwarder {#deploy-the-datadog-lambda-forwarder} {{% observability_pipelines/lambda_forwarder/deploy_forwarder %}} [1]: https://app.datadoghq.com/observability-pipelines -[2]: /es/observability_pipelines/configuration/install_the_worker/advanced_worker_configurations/ \ No newline at end of file +[3]: /es/observability_pipelines/configuration/set_up_pipelines/ +[4]: /es/api/latest/observability-pipelines/ +[5]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/observability_pipeline \ No newline at end of file diff --git a/hugo/content/es/product_analytics/charts/funnel_analysis.md b/hugo/content/es/product_analytics/charts/funnel_analysis.md index 593c3385954..efc463c7235 100644 --- a/hugo/content/es/product_analytics/charts/funnel_analysis.md +++ b/hugo/content/es/product_analytics/charts/funnel_analysis.md @@ -10,11 +10,14 @@ disable_toc: false further_reading: - link: /product_analytics/analytics_explorer/ tag: Documentación - text: Explorador de Product Analytics + text: Explorador de Analytics +- link: /product_analytics/charts/journey_paths/ + tag: Documentación + text: Análisis de trayectorias - link: https://learn.datadoghq.com/courses/getting-started-product-analytics tag: Centro de aprendizaje text: Introducción a Product Analytics -title: Análisis de embudo +title: Embudo --- ## Descripción general {#overview} @@ -122,10 +125,10 @@ Después de definir los eventos de paso y la medición de conversión, puede cam {{< img src="product_analytics/journeys/funnel_analysis/funnel_visualization_video.mp4" alt="Cambiar la visualización de Steps a Timeseries usando un menú desplegable." video=true >}} -### Timeseries{#timeseries} -Ver el embudo como Timeseries puede ser útil para comprender las tendencias de conversión. Puede seleccionar el período de tiempo para graficar la conversión y puede visualizar las conversiones como un recuento absoluto o una tasa. +### Timeseries {#timeseries} +Ver el embudo como timeseries puede ser útil para comprender las tendencias de conversión. Puede seleccionar el período de tiempo para graficar la conversión y puede visualizar las conversiones como un recuento absoluto o una tasa. -{{< img src="product_analytics/journeys/funnel_analysis/funnel_timeseries_view.png" alt="La visualización Timeseries, configurada para mostrar usuarios únicos convertidos diariamente durante la última semana." style="width:80%;" >}} +{{< img src="product_analytics/journeys/funnel_analysis/funnel_timeseries_view.png" alt="La visualización series temporales, configurada para mostrar usuarios únicos convertidos diariamente durante la última semana." style="width:80%;" >}} ### Query value{#query-value} @@ -139,19 +142,15 @@ La visualización de lista principal identifica los valores principales de una f {{< img src="product_analytics/journeys/funnel_analysis/funnel_top_list.png" alt="La visualización de lista principal, configurada para mostrar las cuatro fuentes de conversión principales por continente." style="width:80%;" >}} -## Visualice impulsores de conversión y rutas de recorrido {#view-conversion-drivers-and-journey-paths} +## Visualizar los impulsores de conversión {#view-conversion-drivers} -Para obtener más contexto sobre las conversiones y los abandonos de los usuarios, haga clic en un paso del embudo para acceder al análisis de conversión y a las rutas de recorrido. +Para obtener más contexto sobre las conversiones y los abandonos de los usuarios, haga clic en un paso del embudo para acceder al análisis de conversión.
El análisis de conversión está en Preview.
-- **Análisis de conversión**: Visualice los impulsores de conversión, los recorridos de los usuarios, las reproducciones de usuario disponibles para conversiones y abandonos, y los detalles del usuario. - - {{< img src="product_analytics/journeys/funnel_analysis/funnel_analysis_side_panel.png" alt="La vista del panel lateral después de hacer clic en un paso del embudo, que muestra los impulsores de conversión, las reproducciones disponibles y los usuarios convertidos." style="width:100%;" >}} - -- **Rutas de recorrido**: Visualice las rutas de usuario de conversión y abandono para la secuencia de pasos seleccionada, incluidas las rutas de ramificación a otros pasos fuera del embudo. +Visualizar los impulsores de conversión, los recorridos de usuario, las reproducciones de usuario disponibles para conversiones y abandonos, y los detalles del usuario. - {{< img src="product_analytics/journeys/funnel_analysis/funnel_journey_paths.png" alt="Una ruta de recorrido que muestra las cinco rutas de abandono principales después del paso 1 en el embudo." style="width:100%;" >}} +{{< img src="product_analytics/journeys/funnel_analysis/funnel_analysis_side_panel.png" alt="La vista del panel lateral después de hacer clic en un paso del embudo, que muestra los impulsores de conversión, las reproducciones disponibles y los usuarios convertidos." style="width:100%;" >}} ## Compartir un embudo {#share-a-funnel} diff --git a/hugo/content/es/profiler/profile_visualizations.md b/hugo/content/es/profiler/profile_visualizations.md index 270e31dd621..cd40466023f 100644 --- a/hugo/content/es/profiler/profile_visualizations.md +++ b/hugo/content/es/profiler/profile_visualizations.md @@ -6,189 +6,198 @@ aliases: further_reading: - link: profiler/enabling tag: Documentación - text: Activar Continuous Profiler para tu aplicación + text: Habilite Continuous Profiler para su aplicación - link: getting_started/profiler tag: Documentación - text: Empezando con Profiler + text: Primeros pasos con Continuous Profiler +- link: https://learn.datadoghq.com/courses/continuous-profiler-course + tag: Centro de aprendizaje + text: Diagnostique problemas de rendimiento del código con Continuous Profiler +- link: https://learn.datadoghq.com/courses/profiling-timeline + tag: Centro de aprendizaje + text: Optimice la latencia de las solicitudes con la línea de tiempo de perfilado - link: https://www.datadoghq.com/blog/introducing-datadog-profiling/ tag: Blog - text: Introducción de perfiles de producción siempre activos en Datadog + text: Presentación del Continuous Profiler de producción siempre activo en Datadog - link: https://www.datadoghq.com/blog/continuous-profiler-timeline-view/ tag: Blog - text: Diagnostica las ineficiencias del tiempo de ejecución y del código mediante - la vista de línea temporal de Continuous Profiler. -title: Visualizaciones de perfiles + text: Diagnostique las ineficiencias del código y del tiempo de ejecución mediante + la vista cronológica de Continuous Profiler. +- link: https://www.datadoghq.com/blog/profiling-visualizations/ + tag: Blog + text: Visualizaciones de perfilado accesibles +title: Visualizaciones de perfilado --- +## Buscar perfiles {#search-profiles} -## Buscar perfiles - -{{< img src="profiler/search_profiles3.mp4" alt="Buscar perfiles por etiquetas" video=true >}} +{{< img src="profiler/search_profiles4.mp4" alt="Buscar perfiles por etiquetas" video=true >}} -Ve a **APM -> Profiles** (APM -> Perfiles) y selecciona un servicio para ver sus perfiles. Selecciona un tipo de perfil para ver diferentes recursos (por ejemplo, CPU, Memoria, Excepción y E/S). +Vaya a {{< ui >}}APM{{< /ui >}} > {{< ui >}}Profiles{{< /ui >}} y seleccione un servicio para ver sus perfiles. -Puedes filtrar según etiquetas de infraestructura o etiquetas de aplicación configuradas desde tu [configuración de rastreo de entorno][1]. Por defecto están disponibles las siguientes facetas: +Puede filtrar según las etiquetas de infraestructura o las etiquetas de aplicación configuradas desde su [configuración de rastreo de entorno][1]. De forma predeterminada, están disponibles las siguientes facetas: | Faceta | Definición | | ------- | ------------------------------------------------------------------------- | -| Entorno | El entorno en el que se ejecuta tu aplicación (`production`, `staging`). | -| Servicio | El nombre del [servicio][2] en el que se ejecuta tu código. | -| Versión | La versión de tu código. | -| Host | El nombre de host en el que se ejecuta tu proceso de generación de perfiles. | -| Tiempo de ejecución | El tipo de tiempo de ejecución que está ejecutando el proceso de generación de perfiles (`JVM`, `CPython`). | - -Existen las siguientes medidas: - -| Medición | Definición | -| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CPU | Uso de la CPU, medido en núcleos. | -| Asignación de memoria | Tasa de asignación de memoria a lo largo del perfil. Este valor puede ser superior a la cantidad de memoria de tu sistema, ya que la memoria asignada puede recopilarse de los elementos no usados durante el perfil. | -| Tiempo de pared | El tiempo transcurrido utilizado por el código. El tiempo transcurrido incluye el tiempo en que el código se está ejecutando en la CPU, esperando la E/S y cualquier otra cosa que ocurra mientras se está ejecutando. | - -Para cada tiempo de ejecución, también hay disponible un conjunto más amplio de métricas, que puedes consultar [ordenado por series temporales][3]. - -## Tipos de perfiles - -En la pestaña **Profiles** (Perfiles), puedes ver todos los tipos de perfil disponibles para un lenguaje determinado. Según el lenguaje, la información recopilada sobre tu perfil difiere. Consulta [Tipos de perfil][4] para ver una lista de tipos de perfil disponibles para cada lenguaje. - -## Visualizaciones - -### Gráfico de llama +| Entorno | El entorno en el que se ejecuta su aplicación (`production`, `staging`). | +| Servicio | El nombre del [servicio][2] en el que se ejecuta su código. | +| Versión | La versión de su código. | +| Host | El nombre de host en el que se ejecuta su proceso perfilado. | +| Tiempo de ejecución | El tipo de tiempo de ejecución en el que se ejecuta el proceso perfilado (`JVM`, `CPython`). | -La gráfica de llamas es la visualización por defecto de Continuous Profiler. Muestra cuánta CPU utilizó cada método (ya que se trata de un perfil de CPU) y cómo se llamó a cada método. +## Visualizations {#visualizations} -{{< img src="profiler/profiling_viz-flamegraph.png" alt="Una gráfica de llamas" >}} +### Flame graph {#flame-graph} -Por ejemplo, empezando por la primera fila de la imagen anterior, `Thread.run()` llamó a `ThreadPoolExecutor$Worker.run()`, que llamó a `ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)`, y así sucesivamente. +El flame graph es la visualización predeterminada para Continuous Profiler. El que aparece a continuación muestra cuánto CPU utilizó cada método y cómo se llamó a cada método. Hay otros [tipos de perfil][4] disponibles según el lenguaje. -La anchura de un cuadro representa la cantidad de CPU total que ha consumido. A la derecha, puedes ver una lista principal de **Tiempo de CPU por método** que sólo tiene en cuenta el tiempo propio, que es el tiempo que un método pasó en la CPU sin llamar a otro método. +{{< img src="profiler/profiling_viz-flamegraph2.png" alt="Un flame graph" >}} -Las gráficas de llamas pueden incluirse en dashboards y notebooks con el [widget de Gráfica de llamas de generación de perfiles][5]. +Por ejemplo, comenzando desde la primera fila en la imagen anterior, `Thread.run()` llamó a `Thread.runWith(Object, Runnable)`, que llamó a `ThreadPoolExecutor$Worker.run()`, y así sucesivamente. -### Perfil único +El ancho de un marco representa cuánto del total de CPU consumió. A la derecha, puede ver una lista principal {{< ui >}}CPU time by Method{{< /ui >}} que solo tiene en cuenta el tiempo propio, que es el tiempo que un método pasó en la CPU sin llamar a otro método. -Por defecto, los perfiles se cargan una vez por minuto. Según el lenguaje, estos procesos generan perfiles entre 15s y 60s. - -Para ver un perfil concreto, establece la opción **Visualize as** (Visualizar como) en **Profile List** (Lista de perfil) y haz clic en un elemento de lista: - -{{< img src="profiler/profiling_single-profile.png" alt="Seleccionar un perfil único" >}} - -El encabezado contiene información asociada a tu perfil, como el servicio que lo generó, o el entorno y la versión del código asociados a él. - -Debajo del encabezado del perfil hay cuatro pestañas: - -| Pestaña | Definición | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| Perfiles | Una gráfica de llamas y una tabla de resumen del perfil que estás consultando. Puedes cambiar entre tipos de perfil (por ejemplo, `CPU`, `Memory allocation`). | -| Análisis | Un conjunto de heurísticas que sugieren posibles problemas o áreas de mejora en tu código. Sólo disponible para Java. | -| Métricas | Métricas del perfilador procedentes de todos los perfiles del mismo servicio. | -| Información del tiempo de ejecución | Propiedades de tiempo de ejecución en los lenguajes admitidos y etiquetas de perfil. | - -**Nota**: En la esquina superior derecha de cada perfil, hay opciones para: +De forma predeterminada, los marcos más oscuros indican un mayor uso de CPU, mientras que los marcos más claros significan un menor uso; los métodos que consumen más recursos se agrupan en el lado izquierdo del flame graph. -- Comparar este perfil con otros -- Ver la confirmación del repositorio -- Ver trazas para el mismo proceso y periodo -- Descargar el perfil -- Abrir el perfil en página completa +Los flame graphs se pueden incluir en Dashboards y Notebooks con el [Profiling Flame Graph Widget][5]. Los datos de perfilado que se exportaron a un Notebook se conservan durante un año. -### Vista cronológica +### vista cronológica {#timeline-view} -La vista cronológica es equivalente a la gráfica de llamas, con patrones basados en el tiempo y la distribución del trabajo a lo largo del [periodo de un único perfil](#single-profile), un único proceso en el [profiling explorer][7] y [una traza][6]. +La vista cronológica es equivalente al flame graph, con patrones basados en el tiempo y distribución del trabajo durante [el período de un solo perfil](#single-profile), un solo proceso en [explorador][7] y [una traza][6]. -En comparación con la gráfica de llamas, la vista cronológica puede ayudar a: +En comparación con el gráfico de llama, la vista cronológica puede ayudarle a: -- Aislar los métodos con picos -- Resolver interacciones complejas entre subprocesos -- Actividad superficial en tiempo de ejecución que afectó el proceso +- Aislar métodos con picos de actividad +- Resolver interacciones complejas entre hilos +- Mostrar la actividad del tiempo de ejecución que afectó al proceso -{{< img src="profiler/profiling_viz-timeline3.png" alt="Una cronología" >}} +{{< img src="profiler/profiling_viz-timeline3.png" alt="Una línea de tiempo" >}} Para acceder a la vista cronológica: -1. Ve a [**APM** > **Profiles** > **Explorer**][7] (APM > Perfiles > Explorador). -2. Establece la opción **Visualize as** (Visualizar como) en **Thread Timeline** (Cronología de subproceso). +1. Vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Profiles{{< /ui >}} > {{< ui >}}Explorer{{< /ui >}}][7]. +2. Establezca la opción {{< ui >}}Visualize as{{< /ui >}} en {{< ui >}}Thread Timeline{{< /ui >}}. -Según el tiempo de ejecución y del lenguaje, las líneas cronológicas varían: +Dependiendo del tiempo de ejecución y el lenguaje, los carriles de la línea de tiempo varían: {{< programming-lang-wrapper langs="java,python,go,ruby,nodejs,dotnet,php,full_host" >}} {{< programming-lang lang="java" >}} -Cada línea representa un **subproceso**. Los subprocesos de un grupo común se agrupan. Puedes ampliar el grupo para ver los detalles de cada subproceso. +Cada carril representa un **hilo**. Los hilos de un grupo común se agrupan. Puede expandir el grupo para ver los detalles de cada hilo. -Las líneas de la parte superior son actividades en tiempo de ejecución que pueden afectar al rendimiento. +Los carriles en la parte superior son actividades en tiempo de ejecución que pueden afectar el rendimiento. -Para obtener información adicional sobre la depuración de solicitudes p95 lentas o tiempos de espera utilizando la cronología, consulta la entrada del blog [Understanding Request Latency with Profiling][1]. +Para obtener información adicional sobre cómo depurar solicitudes p95 lentas o tiempos de espera mediante la vista cronológica, consulte la publicación del blog [Understanding Request Latency with Profiling][1]. [1]: https://www.datadoghq.com/blog/request-latency-profiling/ {{< /programming-lang >}} -{{< programming-lang lang="Python" >}} -Consulta [requisitos previos][1] para saber cómo activar esta función para Python. +{{< programming-lang lang="python" >}} +Consulte los [requisitos previos][1] para saber cómo habilitar esta función para Python. -Cada línea representa un **subproceso**. Los subprocesos de un grupo común se agrupan. Puedes ampliar el grupo para ver los detalles de cada subproceso. +Cada carril representa un **hilo**. Los hilos de un grupo común se agrupan. Puede expandir el grupo para ver los detalles de cada hilo. [1]: /es/profiler/connect_traces_and_profiles/#prerequisites {{< /programming-lang >}} {{< programming-lang lang="go" >}} -Consulta [requisitos previos][1] para saber cómo activar esta función para Go. +Consulte los [requisitos previos][1] para saber cómo habilitar esta función para Go. -Cada línea representa una **goroutine**. Las goroutines creadas por la misma sentencia `go` están agrupadas. Puedes expandir el grupo para ver los detalles de cada goroutine. +Cada carril representa una **goroutine**. Las goroutines creadas por la misma instrucción `go` se agrupan. Puede expandir el grupo para ver los detalles de cada goroutine. -Las líneas de la parte superior son actividades en tiempo de ejecución que pueden afectar al rendimiento. +Los carriles en la parte superior son actividades en tiempo de ejecución que pueden afectar el rendimiento. -Para obtener información adicional sobre la depuración de solicitudes p95 lentas o tiempos de espera utilizando la cronología, consulta la entrada del blog [Debug Go Request Latency with Datadog's Profiling Timeline][2]. +Para obtener información adicional sobre cómo depurar solicitudes p95 lentas o tiempos de espera mediante la vista cronológica, consulte la publicación del blog [Debug Go Request Latency with Datadog's Profiling Timeline][2]. [1]: /es/profiler/connect_traces_and_profiles/#prerequisites [2]: https://blog.felixge.de/debug-go-request-latency-with-datadogs-profiling-timeline/ {{< /programming-lang >}} -{{< programming-lang lang="Ruby" >}} -Consulta [requisitos previos][1] para saber cómo activar esta función para Ruby. +{{< programming-lang lang="ruby" >}} +Consulte los [requisitos previos][1] para saber cómo habilitar esta función para Ruby. -Cada línea representa un **subproceso**. Los subprocesos de un grupo común se agrupan. Puedes ampliar el grupo para ver los detalles de cada subproceso. +Cada carril representa un **hilo**. Los hilos de un grupo común se agrupan. Puede expandir el grupo para ver los detalles de cada hilo. -El ID del subproceso se muestra como `native-thread-id (ruby-object-id)` donde el ID del subproceso nativo es `Thread#native_thread_id` (cuando está disponible) y el ID del objeto Ruby es `Thread#object_id`. +El ID del hilo se muestra como `native-thread-id (ruby-object-id)`, donde el ID del hilo nativo es `Thread#native_thread_id` (cuando está disponible) y el ID del objeto de Ruby es `Thread#object_id`. -**Nota**: La VM de Ruby o tu sistema operativo pueden reutilizar IDs de subprocesos nativos. +**Nota**: La VM de Ruby o su sistema operativo podrían reutilizar los IDs de hilos nativos. [1]: /es/profiler/connect_traces_and_profiles/#prerequisites {{< /programming-lang >}} {{< programming-lang lang="nodejs" >}} -Consulta [requisitos previos][1] para saber cómo activar esta función para Node.js. +Consulte los [requisitos previos][1] para saber cómo habilitar esta función para Node.js. -Hay una línea para el **subproceso** de JavaScript. +Hay un carril para el **hilo** de JavaScript. -También puede haber líneas que visualicen varios tipos de **actividad asíncrona** consistente de solicitudes DNS y operaciones de conexión TCP. El número de líneas coincide con -la concurrencia máxima de estas actividades para que puedan visualizarse sin solapamientos. +También puede haber carriles que visualicen varios tipos de **actividad asíncrona** que consisten en solicitudes DNS y operaciones de conexión TCP. El número de carriles coincide. +la concurrencia máxima de estas actividades para que puedan visualizarse sin superposiciones. -Las líneas de la parte superior son **actividades de tiempo de ejecución** del recopilador de elementos no usados que pueden añadir latencia adicional a tu solicitud. +Los carriles en la parte superior son actividades del **tiempo de ejecución** del recolector de basura que pueden añadir latencia adicional a su solicitud. [1]: /es/profiler/connect_traces_and_profiles/#prerequisites {{< /programming-lang >}} {{< programming-lang lang="dotnet" >}} -Cada línea representa un **subproceso**. Los subprocesos con el mismo nombre se agrupan. Puedes expandir un grupo para ver los detalles de cada subproceso. Ten en cuenta que los subprocesos creados explícitamente por código se agrupan en _Subprocesos administrados_. +Cada carril representa un **hilo**. Los hilos con el mismo nombre se agrupan. Puede expandir un grupo para ver los detalles de cada hilo. Tenga en cuenta que los hilos creados explícitamente por código se agrupan bajo _Managed Threads_. -Las líneas de la parte superior son actividades en tiempo de ejecución que pueden afectar al rendimiento, como actividad GC. +Los carriles en la parte superior son actividades del tiempo de ejecución que pueden afectar el rendimiento, como la actividad de GC. -El ID del subproceso se muestra como ` [#OS-thread-id]`. +El ID del hilo se muestra como ` [#OS-thread-id]`. -**Nota**: Tu sistema operativo puede reutilizar los IDs de los subprocesos. +**Nota**: Es posible que su sistema operativo reutilice los ID de hilo. {{< /programming-lang >}} {{< programming-lang lang="php" >}} -Consulta [requisitos previos][1] para saber cómo activar esta función para PHP. +Consulte los [requisitos previos][1] para saber cómo habilitar esta función para PHP. -Hay una línea para cada **subproceso** de PHP (en PHP NTS, sólo hay una línea, ya que sólo hay un subproceso por proceso). -Las fibras que se ejecutan en este **subproceso** se representan en la misma línea. +Hay un carril para cada **hilo** de PHP (en PHP NTS, solo hay un carril ya que solo hay un hilo por proceso). +Las fibras que se ejecutan en este **hilo** se representan en el mismo carril. -Las líneas de la parte superior son actividades de tiempo de ejecución que pueden añadir latencia adicional a tu solicitud, debido a la compilación de archivos y la recopilación de elementos no usados. +Los carriles en la parte superior son actividades del tiempo de ejecución que pueden añadir latencia adicional a su solicitud, debido a la compilación de archivos y la recolección de basura. [1]: /es/profiler/connect_traces_and_profiles/#prerequisites {{< /programming-lang >}} {{< programming-lang lang="full_host" >}} -La vista cronológica actualmente no es compatible con el perfilado de Full Host +La vista cronológica no es compatible actualmente con la generación de perfiles de servidor completo. {{< /programming-lang >}} {{< /programming-lang-wrapper >}} -## Referencias adicionales +### Series temporales y tabla {#timeseries-and-table} + +Para cada tiempo de ejecución, hay un amplio conjunto de métricas disponibles, que puede ver [enumeradas por series temporales][3]. + +### Gráfico de llamadas {#call-graph} + +El gráfico de llamadas utiliza los mismos datos de generación de perfiles que los gráficos de llama, pero muestra cada método solo una vez, como un único nodo, con bordes utilizados para transmitir qué métodos se han llamado entre sí. + +El grosor del borde se utiliza para mostrar el tiempo dedicado a llamar a otros métodos, mientras que el color y el tamaño indican el tiempo propio. + +{{< img src="profiler/profiling_viz-callgraph.png" alt="Un gráfico de llamadas" >}} + +### Single profile {#single-profile} + +De forma predeterminada, los perfiles se cargan una vez por minuto. Dependiendo del lenguaje, estos procesos se perfilan entre 15 y 60 segundos. + +Para ver un perfil específico, establezca la opción {{< ui >}}Visualize as{{< /ui >}} en {{< ui >}}Profile List{{< /ui >}} y haga clic en un elemento de la lista: + +{{< img src="profiler/profiling_single-profile2.png" alt="Select a single profile" >}} + +El encabezado contiene información asociada con su perfil, como el servicio que lo generó, o el entorno y la versión del código asociados con él. + +Debajo del encabezado del perfil hay cuatro pestañas: + +| Tab | Definición | +| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| Profiles | Un flame graph y una tabla resumen del perfil que está viendo. Puede cambiar entre tipos de perfil (por ejemplo, `CPU`, `Memory allocation`). | +| Insights | Un conjunto de heurísticas que sugieren posibles problemas o áreas de mejora en su código. | +| Métricas | Métricas del profiler provenientes de todos los perfiles del mismo servicio. | +| Info de tiempo de ejecución | Propiedades del tiempo de ejecución en lenguajes compatibles y etiquetas de perfil. | +| Related Processes | Procesos relacionados con el perfil. | + +**Nota**: En la esquina superior derecha de cada perfil, hay opciones para: + +- Compare this profile with others +- View repository commit +- View traces for the same process and time frame +- Download the profile +- Open the profile in full page + +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/real_user_monitoring/operations_monitoring.md b/hugo/content/es/real_user_monitoring/operations_monitoring.md index d759ac3e043..e23b5d04df7 100644 --- a/hugo/content/es/real_user_monitoring/operations_monitoring.md +++ b/hugo/content/es/real_user_monitoring/operations_monitoring.md @@ -16,10 +16,6 @@ title: Seguimiento de operaciones --- ## Descripción general {#overview} -{{< callout header="Vista previa" btn_hidden="true" >}} -El seguimiento de operaciones está en Vista previa. -{{< /callout >}} - {{< img src="/real_user_monitoring/operations_monitoring/operations-monitoring-overview-1.png" alt="Pestaña de operaciones en RUM > Performance Monitoring" style="width:100%;" >}} En Datadog Real User Monitoring (RUM), un [recorrido][9] representa un área importante de su aplicación orientada al usuario, como el pago, el inicio de sesión o la búsqueda. Cada recorrido incluye operaciones, que son los pasos técnicos críticos que hacen que la experiencia funcione. @@ -63,7 +59,7 @@ Utilice las API del SDK para definir sus operaciones. Toda operación debe iniciarse llamando a `startOperation` (algunos SDK pueden usar el nombre heredado de esta API - `startFeatureOperation`). {{< tabs >}} -{{% tab "Browser" %}} +{{% tab "Navegador" %}} ```javascript DD_RUM.init({ @@ -151,7 +147,7 @@ m.global.datadogRumAgent@.startOperation( Toda operación iniciada debe tener una detención. Use `succeedOperation` para detener una operación con un resultado exitoso (algunos SDK pueden usar el nombre heredado de esta API - `succeedFeatureOperation`). {{< tabs >}} -{{% tab "Browser" %}} +{{% tab "Navegador" %}} ```javascript succeedFeatureOperation: ( @@ -234,7 +230,7 @@ m.global.datadogRumAgent@.succeedOperation( Toda operación iniciada debe tener una detención. Use `failOperation` para detener una operación con un resultado de error (algunos SDK pueden usar el nombre heredado de esta API - `failFeatureOperation`). {{< tabs >}} -{{% tab "Browser" %}} +{{% tab "Navegador" %}} ```javascript DD_RUM.init({ diff --git a/hugo/content/es/real_user_monitoring/platform/dashboards/_index.md b/hugo/content/es/real_user_monitoring/platform/dashboards/_index.md index 8e1d632344c..79263304764 100644 --- a/hugo/content/es/real_user_monitoring/platform/dashboards/_index.md +++ b/hugo/content/es/real_user_monitoring/platform/dashboards/_index.md @@ -1,53 +1,52 @@ --- aliases: - /es/real_user_monitoring/dashboards -description: Utiliza dashboards RUM para obtener más información sobre los datos y - el rendimiento de tu aplicación. +description: Utilice los dashboards de RUM preconfigurados para obtener más información + sobre los datos y el rendimiento de su aplicación. further_reading: - link: /real_user_monitoring/explorer tag: Documentación - text: Información sobre el navegador RUM -title: Dashboards RUM + text: Obtenga información sobre el Explorador de RUM +title: Dashboards de RUM --- +## Descripción general {#overview} -## Información general +Cuando crea una aplicación RUM, Datadog [recopila datos][1] y genera dashboards sobre el rendimiento, los errores, los recursos y las sesiones de usuario de su aplicación. -Cuando se crea una aplicación RUM, Datadog [recopila datos][1] y genera dashboards sobre el rendimiento, los errores, los recursos y las sesiones de usuario de la aplicación. +{{< img src="real_user_monitoring/dashboards/rum-dashboards-performance-summary.png" alt="Página de descripción general de la aplicación RUM" style="width:90%;" >}} -{{< img src="real_user_monitoring/dashboards/rum-dashboards-performance-summary.png" alt="Página de Información general de la aplicación RUM" style="width:90%;" >}} +Acceda a sus dashboards de RUM filtrando por `RUM` en la consulta de búsqueda de [{{< ui >}}Dashboard List{{< /ui >}}][2] o desde las páginas de resumen de su aplicación ({{< ui >}}Digital Experience{{< /ui >}} > {{< ui >}}Performance Summary{{< /ui >}} y {{< ui >}}Digital Experience{{< /ui >}} > {{< ui >}}Product Analytics{{< /ui >}} > {{< ui >}}Analytics Summary{{< /ui >}}). -Accede a tus dashboards RUM filtrando por `RUM` en la consulta de búsqueda de la [**lista de dashboards**][2] o en las páginas de resumen de tu aplicación (**Experiencia digital > Resumen de rendimiento** y **Experiencia digital > Análisis de productos > Resumen del análisis**). +{{< img src="real_user_monitoring/dashboards/available-rum-dashboards.png" alt="Dashboards de RUM preconfigurados" style="width:90%;" >}} -{{< img src="real_user_monitoring/dashboards/available-rum-dashboards.png" alt="Out-of-the-box Dashboards de RUM predefinidos" style="width:90%;" >}} - -{{< whatsnext desc="Puedes explorar los siguientes dashboards RUM predefinidos:" >}} - {{< nextlink href="/real_user_monitoring/platform/dashboards/performance" >}}Informaciones generales de rendimiento: Observa una vista global del rendimiento del sitio web/de la aplicación y de los datos demográficos. {{< /nextlink >}} - {{< nextlink href="/real_user_monitoring/platform/dashboards/testing_and_deployment" >}}Test y despliegue: Evalúa la cobertura de tu aplicación de tests del navegador e identifica elementos populares en tu aplicación para realizar su seguimiento utilizando datos de RUM y Synthetics. {{< /nextlink >}} - {{< nextlink href="/real_user_monitoring/platform/dashboards/usage" >}}Uso: Analiza datos de sesiones de usuario y de uso de tus aplicaciones RUM, incluidas las señales de frustración. {{< /nextlink >}} - {{< nextlink href="/real_user_monitoring/platform/dashboards/errors" >}}Errores: Observa los errores que aparecen en las consolas de usuarios por navegador y tipo de dispositivo. {{< /nextlink >}} +{{< whatsnext desc="Puede explorar los siguientes dashboards de RUM preconfigurados:" >}} + {{< nextlink href="/real_user_monitoring/platform/dashboards/performance" >}}Descripciones generales de rendimiento: Vea una vista global del rendimiento y la demografía de su sitio web/aplicación. {{< /nextlink >}} + {{< nextlink href="/real_user_monitoring/platform/dashboards/testing_and_deployment" >}}Pruebas y despliegue: Evalúe la cobertura de la aplicación de sus pruebas de navegador e identifique elementos populares en su aplicación para realizar un seguimiento mediante datos de RUM y Synthetics. {{< /nextlink >}} + {{< nextlink href="/real_user_monitoring/platform/dashboards/usage" >}}Uso: Analice los datos de uso y de sesiones de usuario de sus aplicaciones RUM, incluidas las señales de frustración. {{< /nextlink >}} + {{< nextlink href="/real_user_monitoring/platform/dashboards/errors" >}}Errores: Observe los errores que aparecen en las consolas de usuario por navegador y tipo de dispositivo. {{< /nextlink >}} {{< /whatsnext >}} -## Interacción con dashboards RUM +## Interactúe con los dashboards de RUM {#interact-with-rum-dashboards} -Puedes clonar [dashboards][3] y personalizarlos para explorar los datos de tu aplicación en el [Explorador RUM][4]. +Puede clonar [dashboards][3] y personalizarlos para explorar los datos de su aplicación en el [Explorador de RUM][4]. -### Variables de plantilla +### Variables de plantilla {#template-variables} -Los dashboards RUM generados contienen automáticamente un conjunto de variables de plantilla predeterminadas. Utiliza los desplegables de variables de plantilla para seleccionar valores y delimitar tu búsqueda. Para obtener más información, consulte la documentación de [Variables de plantilla][5]. +Los dashboards de RUM generados contienen automáticamente un conjunto de variables de plantilla predeterminadas. Utilice los menús desplegables de variables de plantilla para seleccionar valores y restringir su búsqueda. Para obtener más información, consulte la documentación de [Variables de plantilla][5]. -### Visualizar eventos RUM +### Visualizar eventos de RUM {#view-rum-events} -Para explorar eventos individualmente, haz clic en un gráfico y en **Visualizar eventos RUM**. Esto te redirige al Explorador RUM con filtros de búsqueda preseleccionados. +Para explorar eventos individuales, haga clic en un gráfico y haga clic en {{< ui >}}View RUM events{{< /ui >}}. Esto lo redirige al Explorador de RUM con filtros de búsqueda preseleccionados. -{{< img src="real_user_monitoring/dashboards/rum-view-events-2.mp4" alt="Ver eventos de RUM" video=true style="width:80%;" >}} +{{< img src="real_user_monitoring/dashboards/rum-view-events-2.mp4" alt="Visualizar eventos de RUM" video=true style="width:80%;" >}} -### Personalización de los dashboards +### Personalice dashboards {#customize-dashboards} -Para clonar tus dashboards RUM, haz clic en el icono **Parámetros** y selecciona **Clonar dashboard**. Para añadir más widgets, powerpacks o aplicaciones, desplázate hasta abajo y haz clic en el icono **+**. +Para clonar sus dashboards de RUM, haga clic en el icono {{< ui >}}Settings{{< /ui >}} y seleccione {{< ui >}}Clone dashboard{{< /ui >}}. Para agregar más widgets, powerpacks o apps, desplácese hasta la parte inferior y haga clic en el icono {{< ui >}}\+{{< /ui >}}. -También puedes modificar las variables de plantilla y crear una [vista guardada][6]. +También puede modificar las variables de plantilla y crear una [vista guardada][6]. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/security/application_security/setup/dotnet/dotnet.md b/hugo/content/es/security/application_security/setup/dotnet/dotnet.md new file mode 100644 index 00000000000..5952ebb87fa --- /dev/null +++ b/hugo/content/es/security/application_security/setup/dotnet/dotnet.md @@ -0,0 +1,225 @@ +--- +aliases: +- /es/security_platform/application_security/getting_started/dotnet +- /es/security/application_security/getting_started/dotnet +- /es/security/application_security/enabling/tracing_libraries/threat_detection/dotnet/ +- /es/security/application_security/threats/setup/threat_detection/dotnet +- /es/security/application_security/threats_detection/dotnet +- /es/security/application_security/setup/aws/fargate/dotnet +code_lang: dotnet +code_lang_weight: 10 +further_reading: +- link: /security/application_security/add-user-info/ + tag: Documentación + text: Adición de información de usuario a las trazas +- link: https://github.com/DataDog/dd-trace-dotnet + tag: Código fuente + text: Código fuente de la biblioteca .NET de Datadog +- link: /security/default_rules/?category=cat-application-security + tag: Documentación + text: Reglas de protección de aplicaciones y API listas para usar +- link: /security/application_security/troubleshooting + tag: Documentación + text: Solución de problemas de protección de aplicaciones y API +title: Habilitación de AAP para .NET +type: multi-code-lang +--- +{{< site-region region="gov" >}} +
+App and API Protection se encuentra en versión preliminar en el sitio de Datadog Government US1-FED. +
+{{< /site-region >}} + +Puede hacer un seguimiento de la protección de aplicaciones y API para aplicaciones .NET que se ejecutan en Docker, Kubernetes, Amazon ECS y AWS Fargate. + +{{% appsec-getstarted %}} + +## Habilitación de la detección de amenazas {#enabling-threat-detection} +### Comience {#get-started} + +1. **Actualice su [biblioteca .NET de Datadog][1]** al menos a la versión 2.2.0 para la arquitectura de su sistema operativo de destino. + + Para verificar que las versiones del lenguaje y el marco de trabajo de su servicio sean compatibles con las capacidades de AAP, consulte [Compatibilidad][2]. + +2. **Habilite AAP** configurando la variable de entorno `DD_APPSEC_ENABLED` en `true`. Por ejemplo, en Windows autohospedado, ejecute el siguiente fragmento de PowerShell como parte de su script de inicio de la aplicación: + ``` + $target=[System.EnvironmentVariableTarget]::Process + [System.Environment]::SetEnvironmentVariable("DD_APPSEC_ENABLED","true",$target) + ``` + + **O** uno de los siguientes métodos, dependiendo de dónde se ejecute su aplicación: + + {{< tabs >}} +{{% tab "Windows autohospedado" %}} + +En una consola de Windows: + +``` +rem Set environment variables +SET CORECLR_ENABLE_PROFILING=1 +SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8} +SET DD_APPSEC_ENABLED=true + +rem Start application +dotnet.exe example.dll +``` + +{{% /tab %}} +{{% tab "IIS" %}} + +Ejecute el siguiente comando de PowerShell como administrador para configurar las variables de entorno necesarias en el registro `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment` y reinicie IIS. + +``` +$target=[System.EnvironmentVariableTarget]::Machine +[System.Environment]::SetEnvironmentVariable("DD_APPSEC_ENABLED","true",$target) +net stop was /y +net start w3svc +``` + +**O**, exclusivamente para servicios de IIS, en WAS y W3SVC con PowerShell como administrador, ejecute: + +``` +$appsecPart = "DD_APPSEC_ENABLED=true" +[string[]] $defaultvariable = @("CORECLR_ENABLE_PROFILING=1", "CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}", $appsecPart) + +function Add-AppSec { + + param ( + $path + ) + $v = (Get-ItemProperty -Path $path).Environment + If ($v -eq $null) { + Set-ItemProperty -Path $path -Name "Environment" -Value $defaultvariable + } + ElseIf (-not ($v -match $appsecPart)) { + $v += " " + $appsecPart; + Set-ItemProperty -Path $path -Name "Environment" -Value $v + } +} +Add-AppSec -path "HKLM:SYSTEM\CurrentControlSet\Services\WAS\" +Add-AppSec -path "HKLM:SYSTEM\CurrentControlSet\Services\W3SVC\" + +net stop was /y +net start w3svc +``` + +**O**, para evitar editar las claves del registro, edite la configuración de la aplicación en el archivo `web.config` de su aplicación: + +```xml + + + + + +``` + +Esto también se puede hacer a nivel de grupos de aplicaciones de IIS en el archivo `applicationHost.config`, generalmente en `C:\Windows\System32\inetsrv\config\`: + +```xml + + + + + + + + (...) +``` + +{{% /tab %}} +{{% tab "Linux" %}} + +Agregue lo siguiente a la configuración de su aplicación: + +```conf +DD_APPSEC_ENABLED=true +``` +{{% /tab %}} +{{% tab "CLI de Docker" %}} + +Actualice su contenedor de configuración para APM agregando el siguiente argumento en su comando `docker run`: + +```shell +docker run [...] -e DD_APPSEC_ENABLED=true [...] +``` + +{{% /tab %}} +{{% tab "Dockerfile" %}} + +Agregue el siguiente valor de variable de entorno al Dockerfile de su contenedor: + +```Dockerfile +ENV DD_APPSEC_ENABLED=true +``` + +{{% /tab %}} +{{% tab "Kubernetes" %}} + +Actualice su archivo de configuración de implementación para APM y agregue la variable de entorno AAP: + +```yaml +spec: + template: + spec: + containers: + - name: + image: / + env: + - name: DD_APPSEC_ENABLED + value: "true" +``` + +{{% /tab %}} +{{% tab "Amazon ECS" %}} + +Actualice su archivo JSON de definición de tarea de ECS agregando esto en la sección de entorno: + +```json +"environment": [ + ..., + { + "name": "DD_APPSEC_ENABLED", + "value": "true" + } +] +``` + +{{% /tab %}} +{{% tab "AWS Fargate" %}} + +Agregue la siguiente línea al Dockerfile de su contenedor: + +```Dockerfile +ENV DD_APPSEC_ENABLED=true +``` + +{{% /tab %}} + +{{< /tabs >}} + +3. **Reinicie la aplicación** realizando un ciclo completo de parada e inicio. + +{{% appsec-getstarted-2-plusrisk %}} + +{{< img src="/security/application_security/appsec-getstarted-threat-and-vuln_2.mp4" alt="Video que muestra Signals explorer y detalles, y Vulnerabilities explorer y detalles." video="true" >}} + +## Uso de AAP sin rastreo de APM {#using-aap-without-apm-tracing} + +Si desea utilizar App and API Protection sin la funcionalidad de traza de APM, puede desplegar con la traza deshabilitada: + +1. Configure su SDK con la variable de entorno `DD_APM_TRACING_ENABLED=false` además de la variable de entorno `DD_APPSEC_ENABLED=true`. +2. Esta configuración reducirá la cantidad de datos de APM enviados a Datadog al mínimo requerido por los productos App and API Protection. + +Para obtener más detalles, consulte [Standalone App and API Protection][standalone_billing_guide]. +[standalone_billing_guide]: /security/application_security/guide/standalone_application_security/ + +{{% aap/aap_and_api_protection_verify_setup %}} + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-trace-dotnet/releases/latest +[2]: /es/security/application_security/setup/compatibility/dotnet/ +[3]: /es/agent/versions/upgrade_between_agent_minor_versions/ +[4]: /es/security/application_security/setup/compatibility/ \ No newline at end of file diff --git a/hugo/content/es/security/application_security/threat_protection/policies/_index.md b/hugo/content/es/security/application_security/threat_protection/policies/_index.md new file mode 100644 index 00000000000..9478c58edd5 --- /dev/null +++ b/hugo/content/es/security/application_security/threat_protection/policies/_index.md @@ -0,0 +1,125 @@ +--- +aliases: +- /es/security/application_security/policies/ +- /es/security/application_security/threats/protection +disable_toc: false +title: Políticas +--- +{{< site-region region="gov" >}} +
+App and API Protection se encuentra en versión preliminar en el sitio de Datadog Government US1-FED. +
+{{< /site-region >}} + +Si su servicio está ejecutando [un Agent con Remote Configuration habilitado y una versión de SDK que lo admita][2], puede bloquear ataques y atacantes desde la Datadog UI sin configuración adicional del Agent o los SDKs. + +App and API Protection (AAP) Protect le permite ralentizar los ataques y a los atacantes _bloqueándolos_. Los traces de seguridad son bloqueados en tiempo real por los SDKs de Datadog. Los bloqueos se guardan en la plataforma de Datadog, son recuperados de forma automática y segura por el Datadog Agent, implementados en su infraestructura y aplicados a sus servicios. + +## Requisitos previos {#prerequisites} + +Para utilizar las capacidades de protección con su servicio: + +- [Actualice su Datadog Agent][3] al menos a la versión 7.41.1. +- [Habilite AAP][1]. +- [Habilite Remote Configuration][2]. +- Actualice su SDK al menos a la versión mínima necesaria para activar la protección. Para obtener más detalles, consulte la sección de soporte de capacidades de AAP en [Compatibility][12] para el lenguaje de su servicio. +- Si planea utilizar el bloqueo de usuarios autenticados, [agregue información de usuario a las trazas][4]. + +## Bloqueo de atacantes (IPs y usuarios autenticados) {#blocking-attackers-ips-and-authenticated-users} + +Puede bloquear temporal o permanentemente a los atacantes marcados en [Security Signals][5] de AAP. En Signals Explorer, haga clic en una señal para ver qué usuarios y direcciones IP la están generando y, opcionalmente, bloquearlos. + +A partir de ahí, todos los servicios protegidos por AAP bloquean las solicitudes entrantes realizadas por la IP o el usuario bloqueado, durante la duración especificada. Todos los traces bloqueados se etiquetan con `security_response.block_ip` o `security_response.block_user` y se muestran en el [Trace Explorer][6]. Los servicios donde AAP está deshabilitado no están protegidos. Para obtener más información, consulte [Investigate Security Signals][20]. + +## Responda a las amenazas en tiempo real automatizando el bloqueo de atacantes {#respond-to-threats-in-real-time-by-automating-attacker-blocking} + +Además de bloquear atacantes manualmente, puede configurar reglas de automatización para que AAP bloquee automáticamente a los atacantes marcados en Security Signals. + +Para comenzar, navegue a {{< ui >}}Security{{< /ui >}} > {{< ui >}}App & API Protection{{< /ui >}} > {{< ui >}}Policies{{< /ui >}} > [{{< ui >}}Detection Rules{{< /ui >}}][14]. Puede crear una regla o editar una regla existente. Por ejemplo, puede crear una regla para activar señales de gravedad `Critical` cuando se detecten ataques de Credential Stuffing y bloquear automáticamente las direcciones IP de los atacantes asociados durante 30 minutos. + +**Nota**: Debe instrumentar sus servicios para poder bloquear a los atacantes autenticados. Consulte [Protección y seguimiento del usuario][15] para obtener más detalles. + +## Bloquee atacantes en el perímetro: integre AAP con sus implementaciones de WAF existentes {#block-attackers-at-the-perimeter-integrate-aap-with-your-existing-waf-deployments} + +Datadog AAP permite a los clientes bloquear atacantes en el perímetro, directamente desde la Señal de seguridad. AAP se integra con [Workflows][17] para enviar las direcciones IP de los atacantes a los Web Application Firewalls de perímetro (AWS WAF, Cloudflare, Fastly) y garantizar que las solicitudes de estos atacantes se bloqueen en el borde incluso antes de que ingresen al entorno del cliente. +Cree workflows a partir de los [blueprints][18] disponibles y ejecútelos directamente desde el panel lateral de Signal de AAP. + +## Denylist {#denylist} + +Las direcciones IP de los atacantes y los usuarios autenticados que están bloqueados de forma permanente o temporal se agregan a la _Denylist_. Administre la lista en la [Denylist page][7]. Una denylist admite el bloqueo de IP individuales, así como de un rango de IP (bloques CIDR). + +**Nota**: De forma predeterminada, su Denylist puede contener hasta 2,500 entradas (direcciones IP, rangos CIDR y usuarios autenticados combinados). Las entradas agregadas que superan este límite se aceptan en la Datadog UI, pero no se incluyen en la configuración de la Denylist aplicada, por lo que el bloqueo no surte efecto para ellas. Si necesita bloquear más entradas de las que permite este límite, comuníquese con el [Datadog Support][21] para solicitar un aumento. + +## Passlist {#passlist} + +Puede usar la _Passlist_ para permitir permanentemente que direcciones IP específicas accedan a su aplicación. Por ejemplo, es posible que desee agregar direcciones IP internas a su passlist, o direcciones IP que ejecutan auditorías de seguridad en su aplicación regularmente. También puede agregar rutas específicas para garantizar un acceso ininterrumpido. Administre la lista desde la [Passlist page][8]. + +## Bloqueo de intentos de ataque con In-App WAF {#blocking-attack-attempts-with-in-app-waf} + +AAP In-App WAF (Web Application Firewall) combina las técnicas de detección de los WAF basados en perímetro con el contexto enriquecido proporcionado por Datadog, ayudando a sus equipos a proteger sus sistemas con confianza. + +Debido a que AAP conoce las rutas de una aplicación, la protección se puede aplicar de forma granular a servicios específicos, y no necesariamente en todas las aplicaciones y el tráfico. Esta eficiencia contextual reduce su esfuerzo de inspección y reduce la tasa de falsos positivos en comparación con un WAF de perímetro. No hay período de aprendizaje, porque la mayoría de los web frameworks proporcionan un mapa estructurado de rutas. AAP puede ayudar a su equipo a implementar protecciones contra vulnerabilidades de día cero automáticamente poco después de que se divulgue la vulnerabilidad, mientras se dirige a las aplicaciones vulnerables, limitando el riesgo de falsos positivos. + +### Cómo In-App WAF bloquea los traces de seguridad {#how-in-app-waf-blocks-security-traces} + +Además de los modos `monitoring` y `disabled` ofrecidos para cada una de las más de 130 reglas de In-App WAF, las reglas también tienen el modo `blocking`. Cada regla especifica condiciones en la solicitud entrante para definir lo que la biblioteca considera sospechoso. Cuando un patrón de regla determinado coincide con una solicitud HTTP en curso, la solicitud es bloqueada por la biblioteca. + +Las políticas administradas definen el modo en el que se comporta cada una de las reglas de In-App WAF al coincidir: `monitoring`, `blocking` o `disabled`. Debido a que tiene el contexto completo de sus aplicaciones, AAP sabe qué reglas aplicar para proteger sus aplicaciones mientras limita la cantidad de falsos positivos. + +Para un control detallado, puede clonar una política administrada de Datadog o crear una política personalizada y establecer el modo para satisfacer sus necesidades. Si establece la política en `auto-updating`, sus aplicaciones estarán protegidas por las detecciones más recientes implementadas por Datadog. También tiene la opción de fijar una política a una versión específica del conjunto de reglas. + +A medida que las reglas de In-App WAF se alternan entre modos, los cambios se reflejan casi en tiempo real para los servicios con [Remote Configuration enabled][2]. Para otros servicios, puede actualizar la política en la [In-App WAF page][9] y luego [define In-App WAF rules][10] para que se aplique el cambio de comportamiento. + +Administre In-App WAF navegando a {{< ui >}}Security{{< /ui >}} > {{< ui >}}App & API Protection{{< /ui >}} > {{< ui >}}Policies{{< /ui >}} > [{{< ui >}}In-App WAF{{< /ui >}}][9]. + +Visualizar los traces de seguridad bloqueados en el [Trace Explorer][11] filtrando por la faceta `Blocked:true`. + + + +### Configure In-App WAF {#configure-in-app-waf} + +1. [**Habilite Remote Configuration**][2] para que sus servicios habilitados para AAP aparezcan en In-App WAF. Esto es necesario para enviar de forma segura la configuración de In-App WAF desde su backend de Datadog al SDK en su infraestructura. + +2. **Asocie sus servicios habilitados para AAP/Remote Configuration con una política**. Después de habilitar Remote Configuration en un servicio, navegue a {{< ui >}}Security{{< /ui >}} > {{< ui >}}App & API Protection{{< /ui >}} > {{< ui >}}Policies{{< /ui >}} > [{{< ui >}}In-App WAF{{< /ui >}}][9]. El servicio aparece bajo la política _Datadog Monitoring-only_ de forma predeterminada. Datadog Monitoring-only es una política administrada y es de solo lectura, lo que significa que no puede modificar el estado (monitoreo, bloqueo o deshabilitado) de las reglas individuales. + + Si necesita un control granular, clone una de las políticas disponibles para crear una política personalizada donde se puedan modificar los estados de las reglas. Asocie uno o más de sus servicios con esta política personalizada. + + Para cambiar la política aplicada de forma predeterminada a sus servicios, puede actualizar su política predeterminada. Desde In-App-WAF, haga clic en la política que desea establecer como predeterminada y luego haga clic en **Actions** > **Set this policy as default**. + +## Personalice el comportamiento de protección {#customize-protection-behavior} + +### Personalice la respuesta a las solicitudes bloqueadas {#customize-response-to-blocked-requests} + +{{% asm-protection-page-configuration %}} + +El código de estado de respuesta HTTP predeterminado al servir la página de denegación a los atacantes es `403 FORBIDDEN`. Para personalizar la respuesta, navegue a {{< ui >}}Security{{< /ui >}} > {{< ui >}}App & API Protection{{< /ui >}} > {{< ui >}}Policies{{< /ui >}} > {{< ui >}}In-App Waf{{< /ui >}} > [{{< ui >}}Custom Responses{{< /ui >}}][16]. + +Opcionalmente, puede ocultar el hecho de que el atacante ha sido detectado y bloqueado anulando el código de respuesta para que sea `200 OK` o `404 NOT FOUND` cuando se sirve la página de denegación. + +También puede, opcionalmente, redirigir a los atacantes a una página de denegación personalizada y alejarlos de sus servicios e infraestructura críticos. Especifique una URL de redireccionamiento y el tipo de redireccionamiento, por ejemplo, permanente (`301` código de respuesta) o temporal (`302` código de respuesta). + +### Deshabilitar la protección en todos los servicios (Deshabilitar el modo de protección) {#disable-protection-across-all-services-disabling-protection-mode} + +El modo de protección está **activado** de forma predeterminada y es un interruptor disponible para deshabilitar rápidamente el bloqueo en **todos** sus servicios. Las solicitudes pueden bloquearse desde dos secciones en Datadog: todas las solicitudes de atacantes desde Security Signals y los seguimientos de seguridad desde In-App WAF. + +Por muy importante que sea para usted poder aplicar la protección de forma granular y reducir la probabilidad de que se bloquee a usuarios legítimos, a veces necesita un interruptor simple para detener rápidamente **todo el bloqueo** en **todos los servicios**. Para desactivar la protección, navegue a {{< ui >}}Security{{< /ui >}} > {{< ui >}}App & API Protection{{< /ui >}} > {{< ui >}}Policies{{< /ui >}} > [{{< ui >}}In-App WAF{{< /ui >}}][9] y cambie **Allow Request Blocking** a desactivado. + +[1]: /es/security/application_security/setup/ +[2]: /es/tracing/guide/remote_config +[3]: /es/agent/versions/upgrade_between_agent_minor_versions +[4]: /es/security/application_security/how-it-works/add-user-info/#adding-authenticated-user-information-to-traces-and-enabling-user-blocking-capability +[5]: https://app.datadoghq.com/security/appsec/signals?query=%40workflow.rule.type%3A%22Application%20Security%22&column=time&order=desc&view=signal +[6]: https://app.datadoghq.com/security/appsec/traces?query=%40appsec.blocked%3Atrue +[7]: https://app.datadoghq.com/security/appsec/denylist +[8]: https://app.datadoghq.com/security/appsec/passlist +[9]: https://app.datadoghq.com/security/appsec/in-app-waf +[10]: /es/security/application_security/threat_protection/policies/inapp_waf_rules/ +[11]: https://app.datadoghq.com/security/appsec/traces +[12]: /es/security/application_security/setup/compatibility/ +[14]: https://app.datadoghq.com/security/appsec/detection-rules +[15]: /es/security/application_security/how-it-works/add-user-info/?tab=set_user#adding-authenticated-user-information-to-traces-and-enabling-user-blocking-capability +[16]: https://app.datadoghq.com/security/appsec/in-app-waf?config_by=custom-responses +[17]: https://docs.datadoghq.com/es/actions/workflows/ +[18]: https://app.datadoghq.com/workflow/blueprints?selected_category=SECURITY +[20]: /es/security/application_security/threat_protection/security_signals/ +[21]: /es/help/ \ No newline at end of file diff --git a/hugo/content/es/security/automation_pipelines/security_inbox.md b/hugo/content/es/security/automation_pipelines/security_inbox.md index 4490bab5a53..2e6b40bc73d 100644 --- a/hugo/content/es/security/automation_pipelines/security_inbox.md +++ b/hugo/content/es/security/automation_pipelines/security_inbox.md @@ -4,39 +4,64 @@ aliases: further_reading: - link: /security/security_inbox tag: Documentación - text: Bandeja de entrada de seguridad + text: Security Inbox - link: /security/automation_pipelines tag: Documentación - text: Automation Pipelines -title: Añadir a las reglas de la bandeja de entrada de seguridad + text: Pipelines de automatización +products: +- icon: cloud-security-management + name: Cloud Security + url: /security/cloud_security_management/ +- icon: security-code-security + name: Code Security + url: /security/code_security/ +- icon: app-sec + name: App and API Protection + url: /security/application_security/ +- icon: security-workload-security + name: Workload Protection + url: /security/workload_protection/ +title: Agregar a las reglas de Security Inbox --- +{{< product-availability >}} -{{< callout url="https://www.datadoghq.com/product-preview/customize-your-security-inbox/" >}} - Automation Pipelines está en vista previa. Para inscribirte en la vista previa de Añadir a las reglas de la bandeja de entrada de seguridad, haz clic en Solicitar acceso. -{{< /callout >}} +Configure las reglas de la bandeja de entrada para administrar su Security Inbox de manera efectiva, asegurándose de que solo se resalten los problemas de seguridad más relevantes. Al personalizar las condiciones, puede centrarse en las preocupaciones críticas, priorizar los riesgos clave, respaldar el cumplimiento y llamar la atención sobre problemas que, de otro modo, podrían pasarse por alto. -Configura reglas de bandeja de entrada para gestionar eficazmente tu bandeja de entrada de seguridad, garantizando que sólo se resalten los problemas de seguridad más relevantes. Al personalizar las condiciones, puedes centrarte en las preocupaciones críticas, priorizar los riesgos clave, respaldar el cumplimiento y llamar la atención sobre problemas que de otro modo podrían pasarse por alto. +## Reglas de bandeja de entrada predeterminadas {#default-inbox-rules} -## Crear una regla de bandeja de entrada +Datadog proporciona un conjunto de reglas de bandeja de entrada predeterminadas, compiladas por el equipo de investigación de Datadog Security, que completan su [Security Inbox][3] automáticamente. Estas reglas cubren los hallazgos con mayor probabilidad de representar un riesgo real en un entorno típico. -1. En la página de [Automation Pipelines][2], haz clic en **Add a New Rule** (Añadir una nueva regla) y selecciona **Añadir a la bandeja de entrada de seguridad**. -1. Introduce un nombre descriptivo para la regla, por ejemplo, **Advertencias de anomalías en la infraestructura de nube**. -1. Utiliza las siguientes casillas para configurar los criterios de la regla: - - **Cualquiera de estos tipos**: Los tipos de hallazgos que la regla debe comprobar. Los tipos disponibles incluyen: - - **Configuración errónea** - - **Ruta de ataque** - - **Riesgo de identidad** - - **Hallazgo de seguridad de la API** - - **Cualquiera de estas etiquetas (tags) o atributos**: Las etiquetas o los atributos del recurso que deben coincidir para que se aplique la regla. -1. Para añadir criterios de gravedad a la regla, haz clic en **Add Severity** (Añadir gravedad). -1. Haz clic en **Save** (Guardar). La regla se aplica inmediatamente a los nuevos hallazgos y comienza a comprobar los hallazgos existentes dentro de la siguiente hora. +Las reglas predeterminadas aparecen junto a sus propias reglas en la página [Automatización de hallazgos][2]. Puede deshabilitar una regla predeterminada si no coincide con la forma en que su organización realiza la clasificación, y puede agregar sus propias reglas para cubrir los casos que las predeterminadas omiten. -## Orden de coincidencia de las reglas +## Crear una regla de bandeja de entrada {#create-an-inbox-rule} -Cuando Datadog identifica una vulnerabilidad, la evalúa comparándola con tu secuencia de reglas de bandeja de entrada. Empezando por la primera regla, si hay una coincidencia, Datadog añade la vulnerabilidad a la bandeja de entrada de seguridad y detiene la evaluación. Si no se produce ninguna coincidencia, Datadog pasa a la siguiente regla. Este proceso continúa hasta que se encuentra una coincidencia o hasta que todas las reglas se comprueban y no se encuentran coincidencias. +1. En Datadog, vaya a **Security** > **Settings** > [Findings Automation][2]. Haga clic en **Agregar una regla nueva**, luego seleccione **Agregar a Security Inbox**. Se abre la página Create a New Rule. +1. En **Nombre de la regla**, ingrese un nombre descriptivo para la regla; por ejemplo, "Advertencias de anomalía en Cloud infraestructura". +1. Agregue los criterios de su regla en los siguientes campos: + - **Cualquiera de estos tipos**: Los tipos de hallazgos que la regla debe verificar. Los tipos disponibles incluyen: + - Vulnerabilidad de código en tiempo de ejecución + - Vulnerabilidad de código estático + - Vulnerabilidad de biblioteca + - Secretos (código) + - Infraestructura como código + - Vulnerabilidad de imagen de contenedor + - Vulnerabilidad de servidor + - Configuración incorrecta + - Ruta de ataque + - Riesgo de identidad + - Seguridad de API + - Actividad de carga de trabajo + - **Cualquiera de estas etiquetas o atributos**: Las etiquetas o atributos del recurso que deben coincidir para que se aplique la regla. +1. Para agregar criterios de gravedad a la regla, haga clic en **Add Severity**. +1. Haga clic en **Guardar**. La regla se aplica a los nuevos hallazgos de inmediato y comienza a verificar los hallazgos existentes dentro de la próxima hora. -## Referencias adicionales +## Pedido de coincidencia de reglas {#rule-matching-order} + +Cuando Datadog identifica un hallazgo, lo evalúa con respecto a su secuencia de reglas de bandeja de entrada. Comenzando con la primera regla, si hay una coincidencia, Datadog agrega el hallazgo a Security Inbox y deja de evaluar más. Si no ocurre ninguna coincidencia, Datadog pasa a la siguiente regla. Este proceso continúa hasta que se encuentra una coincidencia o se revisan todas las reglas sin encontrar ninguna. + +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[2]: https://app.datadoghq.com/security/configuration/pipeline-vulnerability \ No newline at end of file +[2]: https://app.datadoghq.com/security/configuration/findings-automation?opened-sections=add_to_inbox +[3]: /es/security/security_inbox/ \ No newline at end of file diff --git a/hugo/content/es/security/cloud_security_management/_index.md b/hugo/content/es/security/cloud_security_management/_index.md index bb64afa03db..40f3fb24274 100644 --- a/hugo/content/es/security/cloud_security_management/_index.md +++ b/hugo/content/es/security/cloud_security_management/_index.md @@ -1,117 +1,159 @@ --- algolia: tags: - - bandeja de entrada + - csm + - cloud security management + - inbox aliases: - /es/security_platform/cloud_security_management/ cascade: algolia: - subcategory: Cloud Security Management + subcategory: Cloud Security further_reading: -- link: https://app.datadoghq.com/release-notes?category=Security%20%26%20Compliance - tag: Notas de la versión - text: Consulta las novedades en Datadog Security Compliance - link: /security/cloud_security_management/misconfigurations/ tag: Documentación - text: Empezar a rastrear los errores de configuración con CSM Misconfigurations -- link: /security/threats/setup + text: Comience a rastrear las configuraciones incorrectas con Cloud Security Misconfigurations +- link: /security/research_feed tag: Documentación - text: Descubrir las amenazas a nivel del kernel con CSM Threats + text: Security Research Feed - link: https://www.datadoghq.com/blog/cyber-attack-simulation-with-stratus-red-team/ tag: Blog - text: Mejorar la detección de amenazas en AWS con Stratus Red Team + text: Mejore la detección de amenazas en AWS con Stratus Red Team - link: https://www.datadoghq.com/blog/kubernetes-security-best-practices/ tag: Blog - text: Prácticas recomendadas para proteger las aplicaciones de Kubernetes + text: Mejores prácticas para asegurar aplicaciones de Kubernetes - link: https://www.datadoghq.com/blog/workload-security-evaluator/ tag: Blog - text: Ejecutar pruebas de detección de Atomic Red Team en entornos en contenedores + text: Ejecute pruebas de detección de Atomic Red Team en entornos de contenedores con Workload Security Evaluator de Datadog -- link: https://www.datadoghq.com/blog/security-context-with-datadog-cloud-security-management/ - tag: Blog - text: Añadir contexto de seguridad a los datos de observabilidad con Datadog Cloud - Security Management - link: https://www.datadoghq.com/blog/security-labs-ruleset-launch/ tag: Blog - text: Solucionar los riesgos habituales de seguridad en la nube con el conjunto - de reglas de Datadog Security Labs + text: Solucione riesgos comunes de seguridad en la nube con el conjunto de reglas + de Datadog Security Labs - link: https://www.datadoghq.com/blog/securing-cloud-native-applications/ tag: Blog - text: Prácticas recomendadas para la seguridad de las aplicaciones en entornos nativos - de la nube -- link: https://www.datadoghq.com/blog/custom-detection-rules-with-datadog-cloud-security-management/ - tag: Blog - text: Personalizar las reglas para detectar errores de configuración en la nube - con Datadog Cloud Security Management + text: Mejores prácticas para la seguridad de aplicaciones en entornos nativos de + la nube - link: https://www.datadoghq.com/blog/building-security-coverage-for-cloud-environments/ tag: Blog - text: Crear una cobertura de seguridad suficiente para tu entorno en la nube -- link: https://www.datadoghq.com/blog/cloud-security-study-learnings/ + text: Construya una cobertura de seguridad suficiente para su entorno en la nube +- link: https://www.datadoghq.com/blog/cloud-security-study-learnings-2024/ + tag: Blog + text: Aprendizajes clave del estudio State of Cloud Security 2024 +- link: https://www.datadoghq.com/blog/security-inbox-prioritization/ + tag: Blog + text: Cómo prioriza los riesgos de seguridad Datadog Security Inbox +- link: https://www.datadoghq.com/blog/datadog-detection-as-code/ + tag: Blog + text: Cómo usamos Datadog para la detección como código +- link: https://www.datadoghq.com/blog/shared-responsibility-model/ + tag: Blog + text: 'Simplificación del modelo de responsabilidad compartida: cómo cumplir con + sus obligaciones de seguridad en la nube' +- link: https://www.datadoghq.com/blog/detect-bedrock-misconfigurations-cloud-security tag: Blog - text: Principales conclusiones del estudio sobre el estado de Cloud Security -- link: https://www.datadoghq.com/blog/cloud-security-malware-detection/ + text: Detecte configuraciones incorrectas de Amazon Bedrock con Datadog Cloud Security +- link: https://www.datadoghq.com/blog/security-graph-attack-paths tag: Blog - text: Detectar malware en tus contenedores con Datadog Cloud Security Management -- link: https://www.datadoghq.com/blog/security-posture-csm/ + text: Rastree las rutas de exposición entre recursos con Datadog Cloud Security +- link: https://www.datadoghq.com/blog/datadog-cloud-security-compliance tag: Blog - text: Informe de los cambios en tu postura de seguridad con Cloud Security Management -title: Cloud Security Management + text: Escale el cumplimiento en marcos globales con Datadog Cloud Security +- link: https://www.datadoghq.com/blog/ec2-ami-risks + tag: Blog + text: 'Seguridad de AWS AMI: cómo las AMI mal configuradas y públicas expanden su + superficie de ataque en la nube' +- link: https://www.datadoghq.com/blog/cloud-security-oci + tag: Blog + text: Proteja sus recursos de OCI con Datadog Cloud Security +title: Cloud Security --- - -{{< learning-center-callout header="Join an enablement webinar session" hide_image="true" btn_title="Sign Up" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Security">}} - Descubre cómo Datadog Cloud SIEM y Cloud Security Management mejoran la detección de amenazas de tu organización e investigación de entornos dinámicos a escala en la nube. +{{< learning-center-callout header="Únase a una sesión de seminario web de habilitación" hide_image="true" btn_title="Registrarse" btn_url="https://www.datadoghq.com/technical-enablement/sessions/?tags.topics-0=Security">}} + Aprenda cómo Datadog Cloud SIEM y Cloud Security mejoran la detección e investigación de amenazas de su organización para entornos dinámicos a escala de nube. {{< /learning-center-callout >}} -Datadog Cloud Security Management (CSM) ofrece detección de amenazas en tiempo real y auditorías continuas de configuración en toda tu infraestructura en la nube, todo ello en una vista unificada para una colaboración fluida y una corrección más rápida. Gracias a los datos de observabilidad, los equipos de seguridad pueden determinar el impacto de una amenaza rastreando el flujo completo del ataque e identificar al propietario del recurso en el que se activó una vulnerabilidad. +Datadog Cloud Security ofrece visibilidad profunda, auditorías de configuración continuas, evaluaciones de riesgo de identidad, detección de vulnerabilidades y detección de amenazas en tiempo real en toda su infraestructura en la nube, todo en una plataforma unificada para una colaboración fluida y una remediación más rápida. -CSM aprovecha las integraciones en la nube de toda la plataforma y Datadog Agent e incluye: +Los equipos de Security y DevOps pueden actuar sobre el contexto compartido de los datos de observabilidad y seguridad para priorizar y remediar problemas rápidamente. -- [Amenazas**][1]: monitoriza la actividad de archivos, redes y procesos en tu entorno para detectar amenazas en tiempo real a tu infraestructura. -- [**Errores de configuración**][2]: rastrea el estado de la seguridad y la postura de cumplimiento de tu entorno de producción, automatiza la recopilación de pruebas de auditoría y te permite remediar las configuraciones erróneas que dejan a tu organización vulnerable a los ataques. -- [Riesgos de identidad**][8]: proporciona una visibilidad detallada de los riesgos de AWS IAM de tu organización y te permite detectar y resolver los riesgos de identidad de forma continua. -- [**Vulnerabilidades**][9]: aprovecha la observabilidad de infraestructura para detectar, priorizar y gestionar vulnerabilidades en los contenedores y hosts de tu organización. +{{< site-region region="gov,gov2" >}} +
El escaneo Agentless no está disponible en el sitio seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} -{{< img src="security/csm/csm_overview_2.png" alt="Cloud Security Management en Datadog" width="100%">}} +Cloud Security aprovecha tanto el Datadog Agent como Agentless. Incluye una variedad de funciones que puede habilitar para administrar diferentes facetas de la seguridad de su organización: -## Controla el estado de tu organización +- [{{< ui >}}Misconfigurations{{< /ui >}}][2]: Realiza un seguimiento de la higiene de seguridad y la postura de cumplimiento de su entorno de producción, automatiza la recopilación de evidencia de auditoría y le permite remediar configuraciones incorrectas que dejan a su organización vulnerable a ataques. +- [{{< ui >}}Identity Risks{{< /ui >}}][8]: Proporciona visibilidad detallada de los riesgos de AWS IAM, Azure y GCP de su organización, y le permite detectar y resolver riesgos de identidad de forma continua. +- [{{< ui >}}Vulnerabilities{{< /ui >}}][9]: Detecte, priorice y remedie de forma continua las vulnerabilidades explotables en sus imágenes de contenedor, imágenes de servidor y servidores que se ejecutan en su infraestructura. -Disponible para [CSM Misconfigurations][2], la [puntuación de la postura de seguridad][5] te ayuda a realizar un seguimiento del estado general de tu organización. La puntuación representa el porcentaje de tu entorno que satisface todas tus normas de cumplimiento predefinidas activas en la nube y en la infraestructura. +Cloud Security también incluye acceso a las funciones de Datadog Security, que incluyen: +- [Detection Rules][18] +- [Notifications][6] +- [Automation Pipelines][19] +- [Security Inbox][14] +- [Audit Trail][20] +- [Security Research Feed][16] -Mejora la puntuación de tu organización mediante la corrección de las configuraciones erróneas, ya sea resolviendo el problema subyacente o silenciando la configuración errónea. +{{< img src="security/csm/csm_overview_5.png" alt="Resumen de Cloud Security en Datadog" width="100%">}} -{{< img src="security/csm/health_scores.png" alt="La puntuación de la postura en la página de información de CSM rastrea el estado general de tu organización" width="100%">}} +{{< partial name="security-platform/CSW-billing-note.html" >}} -## Explorar y solucionar los problemas +## Realice un seguimiento del estado de su organización {#track-your-organizations-health} -Utiliza los [Exploradores][7] para revisar y corregir las detecciones de seguridad de tu organización. Consulta la información detallada sobre una detección, incluidas directrices y pasos para remediarla. [Envía notificaciones][6] en tiempo real cuando se detecte una amenaza en tu entorno, y utiliza etiquetas (tags) para identificar al propietario de un recurso afectado. +### Administre los dashboards de la página de inicio {#manage-homepage-dashboards} -{{< img src="security/csm/explorers_page.png" alt="Página de Exploradores de CSM" width="100%">}} +Puede personalizar los dashboards a los que puede acceder directamente desde la página de inicio de Cloud Security, lo que incluye configurar un dashboard como su opción predeterminada para visualizar la página de inicio. Utilice los dashboards para priorizar los esfuerzos de remediación, programar informes, colocar datos de seguridad junto a datos de observabilidad y costos, e integrar aplicaciones y flujos de trabajo que puede iniciar directamente desde su vista de informes. -## Investigar los recursos +En la [página de inicio de Cloud Security][4], en la sección {{< ui >}}Dashboards{{< /ui >}}, puede ir directamente a los dashboards de riesgos de identidad, configuraciones incorrectas o vulnerabilidades. También puede agregar dashboards existentes o crear uno para mantenerlo en la barra lateral de su página principal de Cloud Security para un acceso conveniente. -{{< site-region region="gov" >}} -
El catálogo de recursos no es compatible con el sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
-{{< /site-region >}} +Además, puede hacer clic en el icono {{< ui >}}More Options{{< /ui >}} {{< img src="icons/kebab.png" inline="true" style="height:1em" >}} para administrar sus dashboards anclados, incluyendo establecer uno como su vista predeterminada en la página de inicio de Cloud Security. Haga clic en {{< ui >}}Cloud Security{{< /ui >}} en la barra de navegación de Datadog o en {{< ui >}}Summary{{< /ui >}} en la barra de navegación de Cloud Security para ir directamente a su dashboard anclado. + +Para obtener más información, consulte [Dashboards][23]. + +### Rastree su puntuación de postura de seguridad {#track-your-security-posture-score} + +Disponible para [Cloud Security Misconfigurations][2], la [puntuación de postura de seguridad][5] le ayuda a rastrear la salud general de su organización. La puntuación representa el porcentaje de su entorno que satisface todas sus reglas de cumplimiento de infraestructura y nube listas para usar activas. + +Mejore la puntuación de su organización remediando las configuraciones incorrectas, ya sea resolviendo el problema subyacente o silenciando la configuración incorrecta. + +{{< img src="security/csm/health_scores.png" alt="La puntuación de postura en la página de descripción general de Cloud Security rastrea la salud general de su organización" width="100%">}} + +## Explore y remedie problemas {#explore-and-remediate-issues} + +Para obtener una descripción general de sus hallazgos de seguridad, ordenados por importancia, en Cloud Security, Code Security, App and API Protection y Workload Protection, utilice [Security Inbox][14]. + +Para obtener más detalles, utilice [Findings][7] para revisar y remediar los hallazgos de seguridad de su organización relacionados con configuraciones incorrectas, vulnerabilidades y riesgos de identidad. Visualice la información detallada sobre un hallazgo, incluidas las pautas y los pasos de remediación. [Send real-time notifications][6] cuando se detecte una amenaza en su entorno y utilice etiquetas para identificar al propietario de un recurso afectado. + +{{< img src="security/csm/findings_page_2.png" alt="Página de hallazgos de Cloud Security" width="100%">}} + +## Investigue recursos {#investigate-resources} -
El catálogo de recursos está en fase beta.
+- Utilice el [Security Graph][17] para modelar su entorno de nube como un gráfico de relaciones, de modo que pueda visualizar y consultar las conexiones entre sus recursos en la nube. Puede escribir consultas para buscar relaciones específicas entre recursos, como instancias de EC2 accesibles públicamente que pueden acceder a buckets de S3 que contienen datos confidenciales, para que pueda mitigar de forma proactiva esos riesgos de infraestructura. + {{< img src="security/csm/security_graph.png" alt="Security Graph que muestra un ejemplo de instancia de EC2" width="100%">}} +- Utilice el [Resource Catalog][12] para visualizar las configuraciones incorrectas y amenazas específicas que se han reportado en los hosts y recursos de sus entornos. Para obtener más información, consulte la documentación del [Resource Catalog][13]. + {{< site-region region="gov,gov2" >}} +
Resource Catalog no es compatible con el sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
+ {{< /site-region >}} + {{< img src="infrastructure/resource_catalog/resource_catalog_infra_3.png" alt="Vista de mapa de Resource Catalog que muestra los servidores y recursos en la nube agrupados por categoría y configuraciones incorrectas." style="width:100%;" >}} +- Utilice el [Cloudcraft Security Map][21] para visualizar sus recursos y cualquier configuraciones incorrectas, vulnerabilidades, riesgos de identidad o dato confidencial asociado a ellos. Para obtener más información sobre estas capas de superposición, consulte la documentación de la [Cloudcraft overlay][22]. -Utiliza el [Catálogo de recursos][12] para ver los errores de configuración y las amenazas específicas de las que se han informado en hosts y recursos de tus entornos. Consulta [Catálogo de recursos][13] para obtener más información. +## Suscríbase a los informes de resumen semanal {#subscribe-to-weekly-digest-reports} -{{< img src="infrastructure/resource_catalog/resource_catalog_infra.png" alt="Vista de mapa del Catálogo de recursos que muestra hosts y recursos de la nube agrupados por categoría y errores de configuración." style="width:100%;" >}} +Reciba un resumen semanal de la actividad de Cloud Security de la última semana, incluidos los nuevos problemas de seguridad importantes descubiertos en los últimos siete días. Las suscripciones al informe de resumen semanal se gestionan por usuario. Para [suscribirse al informe de resumen semanal][11], debe tener el permiso `security_monitoring_signals_read`. -## Suscríbete a los resúmenes semanales +## Conozca las amenazas y vulnerabilidades emergentes {#learn-about-emerging-threats-and-vulnerabilities} -Recibe un resumen semanal de la actividad de Cloud Security Management durante la última semana, incluidos los nuevos problemas de seguridad importantes descubiertos en los últimos siete días. Las suscripciones al resumen semanal se gestionan por usuario. Para [suscribirte al informe semanal][11], debes tener el permiso `security_monitoring_signals_read`. +Utilice el [Security Research Feed][15] para mantenerse al día con los últimos desarrollos de seguridad, con contenido gestionado por los equipos de Investigación de seguridad e Ingeniería de detección de Datadog. Para obtener más información, consulte la documentación del [Security Research Feed][16]. -## Siguientes pasos +## Próximos pasos {#next-steps} -Para empezar con CSM, ve a la página [**Configuración de Cloud Security Management**][3] en Datadog, que contiene pasos detallados sobre cómo configurar CSM. Para obtener más información, consulta [Configuración de Cloud Security Management][10]. +Para comenzar con Cloud Security, navegue a la página [{{< ui >}}Cloud Security Setup{{< /ui >}}][3] en Datadog, que contiene pasos detallados sobre cómo configurar Cloud Security. Para obtener más información, consulte [Setting Up Cloud Security][10]. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: /es/security/threats/ +[1]: /es/security/workload_protection/ [2]: /es/security/cloud_security_management/misconfigurations/ [3]: https://app.datadoghq.com/security/configuration/csm/setup [4]: https://app.datadoghq.com/security/csm @@ -123,4 +165,14 @@ Para empezar con CSM, ve a la página [**Configuración de Cloud Security Manage [10]: /es/security/cloud_security_management/setup/ [11]: https://app.datadoghq.com/security/configuration/reports [12]: https://app.datadoghq.com/infrastructure/catalog -[13]: /es/infrastructure/resource_catalog \ No newline at end of file +[13]: /es/infrastructure/resource_catalog +[14]: /es/security/security_inbox +[15]: https://app.datadoghq.com/security/feed +[16]: /es/security/research_feed +[17]: /es/security/cloud_security_management/security_graph +[18]: /es/security/detection_rules/ +[19]: /es/security/automation_pipelines/ +[20]: /es/security/audit_trail/ +[21]: https://app.datadoghq.com/security/map +[22]: /es/datadog_cloudcraft/overlays/#security +[23]: /es/dashboards/ \ No newline at end of file diff --git a/hugo/content/es/security/cloud_security_management/setup/agentless_scanning/compatibility.md b/hugo/content/es/security/cloud_security_management/setup/agentless_scanning/compatibility.md index 3e7eb89ca56..1a94c1f4fa8 100644 --- a/hugo/content/es/security/cloud_security_management/setup/agentless_scanning/compatibility.md +++ b/hugo/content/es/security/cloud_security_management/setup/agentless_scanning/compatibility.md @@ -1,88 +1,88 @@ --- aliases: - /es/security/cloud_security_management/agentless_scanning/compatibility -title: Compatibilidad de Agentless Scanning +title: Compatibilidad con Agentless Scanning --- ## Disponibilidad {#availability} -El Agentless Scanning es compatible con AWS, Azure y GCP. +El escaneo sin agente es compatible con AWS, Azure y GCP. -La siguiente tabla proporciona un resumen de las tecnologías de Agentless Scanning en relación con sus componentes correspondientes para cada proveedor de nube compatible: +La siguiente tabla proporciona un resumen de las tecnologías de escaneo sin agente en relación con sus componentes correspondientes para cada proveedor de nube compatible: | Componente | AWS | Azure | GCP | |-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Sistema operativo | Linux; Windows Server 2016 o posterior; Windows 10 o posterior | Linux; Windows Server 2016 o posterior; Windows 10 o posterior | Linux; Windows Server 2016 o posterior; Windows 10 o posterior | -| Sistema de archivos del host | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | +| Sistema de archivos del servidor | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | Btrfs, Ext2, Ext3, Ext4, xfs, NTFS | | Administrador de paquetes | Deb (debian, ubuntu)
RPM (amazon-linux, fedora, redhat, centos)
APK (alpine) | Deb (debian, ubuntu)
RPM (fedora, redhat, centos)
APK (alpine) | Deb (debian, ubuntu)
RPM (fedora, redhat, centos)
APK (alpine) | -| Cifrado | AWS
Sin cifrar
Cifrado: Clave administrada por la plataforma (PMK) y Clave administrada por el cliente (CMK) | Cifrado: Clave administrada por la plataforma (PMK): Cifrado del almacenamiento de disco de Azure del lado del servidor, cifrado en el host
**Nota**: El cifrado con clave administrada por el cliente (CMK) **no** es compatible | Cifrado: Clave administrada por la plataforma (PMK): Cifrado de disco persistente, VM confidencial
**Nota**: El cifrado con clave de cifrado administrada por el cliente (CMEK) y claves de cifrado proporcionadas por el cliente (CSEK) **no** es compatible | +| Cifrado | AWS
Sin cifrar
Cifrado - Clave administrada por la plataforma (PMK) y clave administrada por el cliente (CMK) | Cifrado - Clave administrada por la plataforma (PMK): Cifrado del almacenamiento de disco de Azure en el lado del servidor, cifrado en el servidor
**Nota**: Cifrado - Clave administrada por el cliente (CMK) **no** es compatible | Cifrado - Clave administrada por la plataforma (PMK): Cifrado de disco persistente, VM confidencial
**Nota**: Cifrado - Clave de cifrado administrada por el cliente (CMEK) y claves de cifrado proporcionadas por el cliente (CSEK) **no** son compatibles | | Tiempo de ejecución de Container| Docker, containerd
**Nota**: CRI-O **no** es compatible | Docker, containerd
**Nota**: CRI-O **no** es compatible | Docker, containerd
**Nota**: CRI-O **no** es compatible | -| Serverless | AWS Lambda
AWS Fargate para ECS | Azure Functions ([Vista previa][20]), Azure Container Apps, Azure Container Instances
**Nota**: Requiere el agentless scanner más reciente. Consulte [Actualizar el Agentless Scanning][17]. | Cloud Run ([Vista previa][21]) | -| Kubernetes | EKS en nodos EC2
EKS en Fargate
**Nota**: EKS en Fargate requiere que se instale el [Datadog Cluster Agent][18] | AKS en máquinas virtuales y Virtual Machine Scale Sets (VMSS)
**Nota**: AKS en ACI **no** es compatible | Solo GKE Standard
**Nota**: GKE Autopilot y la transmisión de imágenes **no** son compatibles | -| Lenguajes de aplicación (en hosts y containers) | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | -| Registros de Container | Amazon ECR (público y privado): analiza imágenes de Container en ejecución y las últimas 1,000 imágenes cargadas en reposo | ACR: analiza solo imágenes de Container en ejecución
**Nota:** El escaneo en reposo del registro no es compatible. Para solicitarlo, contacte al [Soporte de Datadog][16] | Google Artifact Registry: analiza imágenes solo de cargas de trabajo en ejecución
**Nota**: El soporte para escaneo en reposo de Google Artifact Registry está en [Vista previa][19] | -| Imágenes de host | AMI | No compatible | No compatible | +| Serverless | AWS Lambda
AWS Fargate para ECS | Azure Functions ([Vista previa][20]), Azure Container Apps, Azure Container Instances
**Nota**: Requiere el agentless scanner más reciente. Consulte [Actualizar Agentless Scanning][17]. | Cloud Run ([Vista previa][21]) | +| Kubernetes | EKS en nodos EC2
EKS en Fargate
**Nota**: EKS en Fargate requiere que se instale el [Datadog Cluster Agent][18] | AKS en VMs, conjuntos de escalado de máquinas virtuales (VMSS) y Azure Container Instances (ACI)
**Nota**: AKS en ACI requiere que se instale el [Datadog Cluster Agent][18] | GKE Standard y GKE Autopilot
**Nota**: GKE Autopilot requiere que se instale el [Datadog Cluster Agent][18] | +| Lenguajes de aplicación (en servidores y contenedores) | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | Java, .Net, Python, Node.js, Go, Ruby, Rust, PHP, Swift, Dart, Elixir, Conan, Conda | +| Registros de contenedores | Amazon ECR (público y privado): analiza imágenes de contenedores en ejecución y las últimas 1,000 imágenes cargadas en reposo | ACR: analiza solo imágenes de contenedores en ejecución
**Nota:** El escaneo de registros en reposo no es compatible. Para solicitarlo, contacte al [Soporte de Datadog][16] | Google Artifact Registry: analiza imágenes solo de cargas de trabajo en ejecución
**Nota**: El soporte para escaneo en reposo de Google Artifact Registry está en [Vista previa][19] | +| Imágenes del servidor | AMI | No compatible | No compatible | | Datos sensibles (SDS) | S3 | No compatible | No compatible | -**Nota**: Las AMI deben almacenarse en una cuenta que utilice la integración de AWS de Datadog. De lo contrario, Datadog no puede leer la instantánea de Amazon Elastic Block Store (EBS) subyacente de la AMI, por lo que no puede analizar ni informar sobre la AMI. +**Nota**: Las AMI deben almacenarse en una cuenta que utilice la integración de AWS de Datadog. De lo contrario, Datadog no puede leer la instantánea de Amazon Elastic Block Store (EBS) subyacente de la AMI, por lo que no puede escanear ni informar sobre la AMI. ## Distribuciones de Linux {#linux-distributions} -Las siguientes distribuciones de Linux son compatibles para escaneo de hosts y containers: +Las siguientes distribuciones de Linux son compatibles para escaneos de servidores y contenedores: -| Sistema operativo | Versiones compatibles | Administradores de paquetes | Avisos de seguridad | +| Sistema operativo | Versiones compatibles | Gestores de paquetes | Avisos de seguridad | |--------------------------|-----------------------------------------------------|------------------|-----------------------------------------------------------------------------------------------------------| -| Alpine Linux | 2.2-2.7, 3.0-3.19 (edge no es compatible) | apk | [https://secdb.alpinelinux.org/][1] | -| Wolfi Linux | N/A | apk | [https://packages.wolfi.dev/os/security.json][2] | -| Chainguard | N/A | apk | [https://packages.cgr.dev/chainguard/security.json][3] | -| Red Hat Enterprise Linux | 6, 7, 8 | dnf/yum/rpm | [https://www.redhat.com/security/data/metrics/][4] y [https://www.redhat.com/security/data/oval/v2/][5] | -| CentOS | 6, 7, 8 | dnf/yum/rpm | [https://www.redhat.com/security/data/metrics/][4] y [https://www.redhat.com/security/data/oval/v2/][5] | -| AlmaLinux | 8, 9 | dnf/yum/rpm | [https://errata.almalinux.org/][6] | -| Rocky Linux | 8, 9 | dnf/yum/rpm | [https://download.rockylinux.org/pub/rocky/][7] | -| Oracle Linux | 5, 6, 7, 8 | dnf/yum/rpm | [https://linux.oracle.com/security/oval/][8] | -| CBL-Mariner | 1.0, 2.0 | dnf/yum/rpm | [https://github.com/microsoft/CBL-MarinerVulnerabilityData/][9] | -| Amazon Linux | 1, 2, 2023 | dnf/yum/rpm | [https://alas.aws.amazon.com/][10] | -| openSUSE Leap | 42, 15 | zypper/rpm | [http://ftp.suse.com/pub/projects/security/cvrf/][11] | -| SUSE Linux Enterprise | 11, 12, 15 | zypper/rpm | [http://ftp.suse.com/pub/projects/security/cvrf/][11] | -| Photon OS | 1.0, 2.0, 3.0, 4.0 | tdnf/yum/rpm | [https://packages.vmware.com/photon/photon_cve_metadata/][12] | -| Debian GNU/Linux | 7, 8, 9, 10, 11, 12 (unstable/sid no es compatible) | apt/dpkg | [https://security-tracker.debian.org/tracker/][13] y [https://www.debian.org/security/oval/][14] | -| Ubuntu | Todas las versiones compatibles con Canonical | apt/dpkg | [https://ubuntu.com/security/cve][15] | +| Alpine Linux | 2.2-2.7, 3.0-3.19 (edge no es compatible) | apk | [https://secdb.alpinelinux.org/][1] | +| Wolfi Linux | N/D | apk | [https://packages.wolfi.dev/os/security.json][2] | +| Chainguard | N/D | apk | [https://packages.cgr.dev/chainguard/security.json][3] | +| Red Hat Enterprise Linux | 6, 7, 8 | dnf/yum/rpm | [https://www.redhat.com/security/data/metrics/][4] y [https://www.redhat.com/security/data/oval/v2/][5] | +| CentOS | 6, 7, 8 | dnf/yum/rpm | [https://www.redhat.com/security/data/metrics/][4] y [https://www.redhat.com/security/data/oval/v2/][5] | +| AlmaLinux | 8, 9 | dnf/yum/rpm | [https://errata.almalinux.org/][6] | +| Rocky Linux | 8, 9 | dnf/yum/rpm | [https://download.rockylinux.org/pub/rocky/][7] | +| Oracle Linux | 5, 6, 7, 8 | dnf/yum/rpm | [https://linux.oracle.com/security/oval/][8] | +| CBL-Mariner | 1.0, 2.0 | dnf/yum/rpm | [https://github.com/microsoft/CBL-MarinerVulnerabilityData/][9] | +| Amazon Linux | 1, 2, 2023 | dnf/yum/rpm | [https://alas.aws.amazon.com/][10] | +| openSUSE Leap | 42, 15 | zypper/rpm | [http://ftp.suse.com/pub/projects/security/cvrf/][11] | +| SUSE Linux Enterprise | 11, 12, 15 | zypper/rpm | [http://ftp.suse.com/pub/projects/security/cvrf/][11] | +| Photon OS | 1.0, 2.0, 3.0, 4.0 | tdnf/yum/rpm | [https://packages.vmware.com/photon/photon_cve_metadata/][12] | +| Debian GNU/Linux | 7, 8, 9, 10, 11, 12 (unstable/sid no es compatible) | apt/dpkg | [https://security-tracker.debian.org/tracker/][13] y [https://www.debian.org/security/oval/][14] | +| Ubuntu | Todas las versiones admitidas por Canonical | apt/dpkg | [https://ubuntu.com/security/cve][15] | ## Bibliotecas de aplicaciones {#application-libraries} -Los siguientes lenguajes y bibliotecas de aplicaciones son compatibles para escaneos de vulnerabilidades en imágenes de Container, funciones Lambda y Container que se ejecutan en hosts: +Los siguientes lenguajes y bibliotecas de aplicaciones son compatibles para escaneos de vulnerabilidades en imágenes de contenedores, funciones Lambda y contenedores que se ejecutan en hosts: -| Lenguaje | Administrador de paquetes compatible | Archivos compatibles | +| Lenguaje | Gestor de paquetes compatible | Archivos compatibles | |----------|---------------------------|----------------------------------------------------------------------| | Ruby | bundler | Gemfile.lock, gemspec | | .NET | nuget | packages.lock.json, packages.config, .deps.json, *packages.props | -| Go | mod | Binarios creados por Go, go.mod | +| Go | mod | Binarios compilados por Go, go.mod | | Java | Gradle, Maven | pom.xml, *gradle.lockfile, JAR/WAR/PAR/EAR (con pom.properties) | | Node.js | npm, pnpm, yarn | package-lock.json, yarn.lock, pnpm-lock.yaml, package.json | | PHP | composer | composer.lock | | Python | pip, poetry | pipfile.lock, poetry.lock, paquete egg, paquete wheel, paquete conda | -## Registros de imágenes de Container {#container-image-registries} +## Registros de imágenes de contenedor {#container-image-registries} -Los siguientes registros de imágenes de Container son compatibles para el escaneo de imágenes de Container: +Los siguientes registros de imágenes de contenedores son compatibles para escaneos de imágenes de contenedores: | Registro | Nivel de soporte | Notas | |---------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Amazon ECR (público y privado) | GA | Escanea imágenes de Container en ejecución **y** las últimas 1,000 imágenes enviadas en reposo (por fecha). Este es el único registro con soporte de escaneo en reposo
**Nota:** Para aumentar la cantidad de imágenes en reposo a escanear, contacte a [Datadog Support][16] | -| Google Artifact Registry (GAR) | Vista previa | Escanea solo las imágenes vinculadas a cargas de trabajo en ejecución (Cloud Run, GKE)
**Nota**: El soporte de escaneo en reposo de Google Artifact Registry está en [Vista previa][19] | -| Azure Container Registry (ACR) | GA | Escanea solo las imágenes de Container en ejecución de Azure Container Apps y Azure Container Instances
**Nota**: El escaneo de registro en reposo no es compatible. Para solicitarlo, comuníquese con [Datadog Support][16] | +| Amazon ECR (público y privado) | GA | Escanea imágenes de contenedor en ejecución **y** las últimas 1,000 imágenes enviadas en reposo (por fecha). Este es el único registro con soporte de escaneo en reposo
**Nota:** Para aumentar el número de imágenes en reposo a escanear, contacte a [Datadog Support][16] | +| Google Artifact Registry (GAR) | Preview | Escanea solo imágenes vinculadas a cargas de trabajo en ejecución (Cloud Run, GKE)
**Nota**: El soporte de escaneo en reposo de Google Artifact Registry está en [Preview][19] | +| Azure Container Registry (ACR) | GA | Escanea solo imágenes de contenedor en ejecución de Azure Container Apps y Azure Container Instances
**Nota**: El escaneo de registro en reposo no es compatible. Para solicitarlo, contacte a [Datadog Support][16] | -**Nota**: El escaneo de imágenes de Container desde el registro solo es compatible si ha instalado Agentless con: - - Integrations de CloudFormation >= v2.0.8 +**Nota**: El escaneo de imágenes de contenedor desde el registro solo es compatible si ha instalado Agentless con: + - CloudFormation Integrations >= v2.0.8 - Módulo Agentless de Terraform >= v0.11.7 -## Entornos de ejecución de Container {#container-runtimes} +## Entornos de ejecución de contenedores {#container-runtimes} -Los siguientes entornos de ejecución de Container son compatibles: +Se admiten los siguientes entornos de ejecución de contenedores: - containerd: v1.5.6 o posterior - Docker -**Nota para observaciones de Container**: Agentless Scanning requiere capas de imagen de Container sin comprimir. Como solución alternativa, puede establecer la opción de configuración `discard_unpacked_layers=false` en el archivo de configuración de containerd. +**Nota para observaciones de contenedor**: El escaneo Agentless requiere capas de imagen de contenedor sin comprimir. Como solución alternativa, puede establecer la opción de configuración `discard_unpacked_layers=false` en el archivo de configuración de containerd. [1]: https://secdb.alpinelinux.org/ [2]: https://packages.wolfi.dev/os/security.json diff --git a/hugo/content/es/security/cloud_security_management/triage_and_prioritize/_index.md b/hugo/content/es/security/cloud_security_management/triage_and_prioritize/_index.md index b1a568a3380..cd4939a1978 100644 --- a/hugo/content/es/security/cloud_security_management/triage_and_prioritize/_index.md +++ b/hugo/content/es/security/cloud_security_management/triage_and_prioritize/_index.md @@ -2,35 +2,30 @@ further_reading: - link: /security/cloud_security_management/triage_and_prioritize/runtime_prioritization_engine/ tag: Documentación - text: Motor de Priorización en Tiempo de Ejecución + text: Motor de priorización en tiempo de ejecución - link: /security/cloud_security_management/triage_and_prioritize/severity_scoring/ tag: Documentación - text: Puntuación de Severidad + text: Puntuación de gravedad - link: /security/security_inbox/ tag: Documentación - text: Revisar los hallazgos priorizados en la Bandeja de Entrada de Seguridad -title: Clasificar y Priorizar + text: Revise los hallazgos priorizados en la Bandeja de entrada de Security +title: Clasificar y priorizar --- -Cloud Security genera hallazgos sobre vulnerabilidades, configuraciones incorrectas y riesgos de identidad. Clasificar y Priorizar abarca dos capacidades relacionadas: el motor que identifica los hallazgos que exponen sus recursos críticos para el negocio, y el marco de puntuación que traduce ese juicio en una puntuación de severidad por hallazgo que puede ordenar, filtrar y dirigir. +Cloud Security genera hallazgos sobre vulnerabilidades, configuraciones incorrectas y riesgos de identidad. Clasificar y priorizar abarca dos capacidades relacionadas: el motor que identifica los hallazgos que exponen sus recursos críticos para el negocio y el marco de puntuación que traduce ese juicio en una puntuación de gravedad por hallazgo que puede ordenar, filtrar y enrutar. -## Motor de Priorización en Tiempo de Ejecución {#runtime-prioritization-engine} +## Motor de priorización en tiempo de ejecución {#runtime-prioritization-engine} {{< site-region region="gov,gov2" >}} -
El Motor de Priorización en Tiempo de Ejecución no está disponible en el sitio seleccionado ({{< region-param key="dd_site_name" >}}).
+
El Motor de priorización en tiempo de ejecución no está disponible en el sitio seleccionado ({{< region-param key="dd_site_name" >}}).
{{< /site-region >}} -{{< callout url=https://www.datadoghq.com/product-preview/runtime-prioritization-engine/ - btn_hidden="false" header="¡Únete a la Vista Previa!">}} -El Motor de Priorización en Tiempo de Ejecución está en Vista Previa para Vulnerabilidades de Cloud Security. Utilice este formulario para solicitar acceso. -{{< /callout >}} +El [Motor de priorización en tiempo de ejecución][1] combina la observabilidad en tiempo de ejecución y los datos de seguridad para identificar el ~5% de los hallazgos que realmente exponen sus recursos críticos para el negocio. Evalúa cada hallazgo en cinco dimensiones: alcanzabilidad, exposición, explotabilidad, criticidad empresarial y capacidad de acción. -El [Motor de Priorización en Tiempo de Ejecución][1] combina la observabilidad en tiempo de ejecución y los datos de seguridad para identificar el ~5% de los hallazgos que realmente exponen sus recursos críticos para el negocio. Evalúa cada hallazgo en cinco dimensiones: alcanzabilidad, exposición, explotabilidad, criticidad para el negocio y capacidad de acción. +## Puntuación de gravedad {#severity-scoring} -## Puntuación de Severidad {#severity-scoring} +La [Puntuación de gravedad][2] convierte el resultado del Motor de priorización en tiempo de ejecución en un Datadog Severity Score para cada hallazgo. Para las vulnerabilidades, sigue el algoritmo [CVSS 4.0][3], enriqueciendo la puntuación base con factores temporales (como exploits activos o probabilidad de explotación) y factores ambientales (como el contexto de tiempo de ejecución, la exposición o la criticidad del recurso afectado). Para las configuraciones incorrectas y los riesgos de identidad, calcula la gravedad utilizando una matriz de probabilidad × impacto que pondera cómo un adversario podría abusar del hallazgo frente al daño que dicho abuso causaría. -[Puntuación de Severidad][2] convierte la salida del Motor de Priorización en Tiempo de Ejecución en una Datadog Severity Score para cada hallazgo. Para vulnerabilidades, sigue el algoritmo [CVSS 4.0][3], enriqueciendo la puntuación base con factores temporales (como exploits activos o probabilidad de explotación) y factores ambientales (como contexto de ejecución, exposición o criticidad del recurso afectado). Para configuraciones incorrectas y riesgos de identidad, calcula la severidad utilizando una matriz de probabilidad × impacto que pondera cómo un adversario podría abusar del hallazgo en relación con el daño que dicho abuso ocasionaría. - -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/security/code_security/iac_security/_index.md b/hugo/content/es/security/code_security/iac_security/_index.md index f573c857115..6072783bd67 100644 --- a/hugo/content/es/security/code_security/iac_security/_index.md +++ b/hugo/content/es/security/code_security/iac_security/_index.md @@ -2,88 +2,125 @@ aliases: - /es/security/cloud_security_management/iac_scanning/ further_reading: -- link: https://www.datadoghq.com/blog/datadog-iac-security/ - tag: Blog - text: Evitar que los errores de configuración de la nube lleguen a la producción - con Datadog IaC Security - link: /security/code_security/iac_security/setup tag: Documentación text: Configurar IaC Security -- link: /security/code_security/iac_security/exclusions +- link: /security/code_security/iac_security/configuration tag: Documentación - text: Configurar exclusiones de IaC Security + text: Configurar IaC Security - link: /security/code_security/iac_security/iac_rules/ tag: Documentación text: Reglas de IaC Security +- link: /security/code_security/iac_security/custom_rules/ + tag: Documentación + text: IaC Custom Rules +- link: /pr_gates/ + tag: Documentación + text: PR Gates +- link: https://www.datadoghq.com/blog/datadog-iac-security/ + tag: Blog + text: Evite que las configuraciones erróneas de la nube lleguen a producción con + Datadog IaC Security +- link: https://www.datadoghq.com/blog/code-security-secret-scanning + tag: Blog + text: Detecte y bloquee credenciales expuestas con Datadog Secret Scanning +- link: https://www.datadoghq.com/blog/github-actions-iac-security/ + tag: Blog + text: 'Detectar errores de configuración de CI/CD antes que los bots: Asegurar GitHub + Actions con Datadog IaC Security' title: Infrastructure as Code (IaC) Security --- +Datadog Infrastructure as Code (IaC) Security detecta errores de configuración en las configuraciones de IaC antes de que se implementen. Marca problemas como la falta de cifrado o el acceso excesivamente permisivo en los archivos almacenados en sus repositorios conectados de GitHub, GitLab o Azure DevOps. Para obtener más información, consulte [IaC Security Rules][13]. + +{{< img src="/security/infrastructure_as_code/iac_misconfiguration_side_panel.png" alt="Panel lateral de errores de configuración de IaC que muestra detalles del problema de alta gravedad IMDSv1 Enabled, incluido un resumen de seguridad, un fragmento de código, marcas de tiempo de detección y pasos de corrección." width="100%">}} + +## Cómo funciona {#how-it-works} + +IaC Security se integra con sus repositorios para escanear continuamente en busca de errores de configuración y escanea cada confirmación en todas las ramas para cada repositorio configurado. Cuando se detectan infracciones, los hallazgos se muestran y se vinculan al repositorio, la rama y la ruta de archivo relevantes. Esto le ayuda a identificar, priorizar y corregir errores de configuración directamente en la fuente. + +## Capacidades clave {#key-capabilities} + +### Revise y corrija las infracciones en las solicitudes de extracción {#review-and-fix-violations-in-pull-requests} + +Cuando una solicitud de extracción incluye cambios de infraestructura como código, Datadog agrega comentarios en línea para marcar cualquier infracción. Cuando corresponde, también sugiere correcciones de código que se pueden aplicar directamente en la solicitud de extracción. También puede abrir una nueva solicitud de extracción desde Datadog para corregir un hallazgo. Para obtener más información, consulte [Pull Request Comments][5]. + +### Corregir con Cursor {#fix-with-cursor} +Puede delegar la corrección de un hallazgo de IaC a un agente de codificación de IA como Cursor. -Datadog Infrastructure as Code (IaC) Security detecta errores de configuración en el código de Terraform antes de su despliegue. Señala problemas como la falta de cifrado o el acceso demasiado permisivo en los archivos almacenados en los repositorios de GitHub conectados. Los tipos de archivos compatibles incluyen archivos Terraform independientes y módulos locales. +1. En la página [Code Security Vulnerabilities][3], haga clic en un hallazgo para abrir su panel lateral. +2. En la sección {{< ui >}}Next Steps{{< /ui >}} > {{< ui >}}Remediation{{< /ui >}}, haga clic en {{< ui >}}Remediate with AI{{< /ui >}}. +3. Seleccione la pestaña {{< ui >}}Coding agent{{< /ui >}}. +4. En {{< ui >}}Generate your fix directly from Claude Code, Codex, or Cursor{{< /ui >}}, haga clic en {{< ui >}}Open{{< /ui >}} junto a {{< ui >}}Fix with Cursor{{< /ui >}}. Datadog abre Cursor con un aviso de corrección personalizado para el error de configuración. -{{< img src="/security/infrastructure_as_code/iac_misconfiguration_side_panel.png" alt="Panel lateral de errores de configuración de IaC en el que se muestran detalles del problema de alta gravedad activado por IMDSv1, incluidos un resumen de seguridad, un fragmento de código, marcas de tiempo de detección y pasos de corrección." width="100%">}} +Para usar un agente diferente, haga clic en {{< ui >}}Copy{{< /ui >}} junto a {{< ui >}}Copy fix prompt{{< /ui >}} y pegue el aviso en el agente de su elección. -## Cómo funciona +Para manejar el enlace profundo de Cursor, instale la [extensión de Datadog para VS Code y Cursor](/ide_plugins/vscode/?tab=cursor). -IaC Security se integra con tus repositorios de GitHub para buscar continuamente errores de configuración. Analiza cada commit en todas las ramas y realiza un análisis diario completo de cada repositorio configurado. Los hallazgos aparecen cuando se detectan infracciones y se asocian con el repositorio, la rama y la ruta de archivo relevantes. Esto te permite identificar, priorizar y corregir errores de configuración directamente en el origen. +{{< img src="code_security/iac_security/fix-with-cursor.png" alt="El cuadro de diálogo Remediate with AI con la pestaña Coding agent seleccionada, que muestra las opciones Fix with Cursor y Copy fix prompt" style="width:100%;" >}} -## Capacidades clave +### Bloquee automáticamente cambios riesgosos con PR Gates {#automatically-block-risky-changes-with-pr-gates} -### Revisar y corregir infracciones en solicitudes de extracción +Utilice [PR Gates][11] para aplicar estándares de seguridad en los cambios de infraestructura como código antes de que se fusionen. Datadog escanea los cambios de IaC en cada solicitud de extracción, identifica cualquier vulnerabilidad por encima del umbral de gravedad configurado e informa un estado de aprobado o fallido a GitHub o Azure DevOps. -Cuando una solicitud de extracción de GitHub incluye cambios en la infraestructura como código, Datadog añade comentarios en línea para señalar cualquier infracción. Cuando corresponde, también sugiere correcciones de código que pueden aplicarse directamente en la solicitud de extracción. También puedes abrir una nueva solicitud de extracción desde Datadog para corregir un hallazgo. Para obtener más información, consulta [Solicitudes de extracción de GitHub][5]. +De forma predeterminada, las comprobaciones son informativas, pero puede hacer que bloqueen en GitHub o Azure DevOps para evitar la fusión cuando se detectan problemas críticos. Para obtener instrucciones de configuración, consulte [Set up PR Gate Rules][12]. -### Ver y filtrar los hallazgos +### Visualizar y filtrar hallazgos {#view-and-filter-findings} -Después de configurar IaC Security, cada commit de un repositorio analizado activa un análisis. Los hallazgos se resumen en la página [Vulnerabilidades de Code Security][3] y se agrupan por repositorio en la página [Repositorios de Code Security][6]. +Después de configurar IaC Security, cada confirmación en un repositorio escaneado activa un escaneo. Los hallazgos se resumen en la página [Code Security Vulnerabilities][3] y se agrupan por repositorio en la página [Code Security Repositories][6]. -Utiliza filtros para delimitar los resultados: +Utilice filtros para limitar los resultados por: - Gravedad -- Estado (abierto, silenciado, fijo) -- Resource type -- Proveedor de la nube +- Estado (abierto, silenciado, corregido) +- Tipo de recurso +- Proveedor de nube - Ruta del archivo - Equipo - Repositorio -Haz clic en cualquier hallazgo para abrir un panel lateral que muestra: +Haga clic en cualquier hallazgo para abrir un panel lateral que muestra: -- **Detalles**: Una descripción y el código relevante que ha activado el hallazgo. (Para ver fragmentos de código, [instala la aplicación GitHub][9]). -- **Solución**: Si están disponibles, se sugieren correcciones de código para los hallazgos que admiten la corrección. +- {{< ui >}}Details{{< /ui >}}: Una descripción y el código relevante que activó el hallazgo. (Para visualizar fragmentos de código, [instale la aplicación de GitHub][9]. ) +- {{< ui >}}Remediation{{< /ui >}}: Si están disponibles, se proporcionan sugerencias de corrección de código para los hallazgos que admiten remediación. -### Crear tickets de Jira a partir de hallazgos +### Crear tickets de Jira a partir de hallazgos {#create-jira-tickets-from-findings} -Puedes crear un ticket bidireccional de Jira directamente desde cualquier hallazgo para realizar un seguimiento de los problemas y solucionarlos en tus flujos de trabajo existentes. El estado del ticket permanece sincronizado entre Datadog y Jira. Para obtener más información, consulta [Sincronización bidireccional de tickets con Jira][4]. +Puede crear un ticket de Jira bidireccional directamente desde cualquier hallazgo para realizar un seguimiento y remediar problemas en los flujos de trabajo existentes. El estado del ticket permanece sincronizado entre Datadog y Jira. Para obtener más información, consulte [Sincronización bidireccional de tickets con Jira][4]. -### Silenciar los hallazgos +### Silenciar hallazgos {#mute-findings} -Para eliminar un hallazgo, haz clic en **Mute** (Silenciar) en el panel de detalles del hallazgo. Se abre un flujo de trabajo, donde puedes [crear una regla de silenciado][10] para el filtrado contextual por valores de etiqueta (tag) (por ejemplo, por `service` o `environment`). Silenciar un hallazgo lo oculta y lo excluye de los informes. +Para suprimir un hallazgo, haga clic en {{< ui >}}Mute{{< /ui >}} en el panel de detalles del hallazgo. Esto abre un flujo de trabajo donde puede [crear una Regla de silenciamiento][10] para el filtrado consciente del contexto por valores de etiqueta (por ejemplo, por `service` o `environment`). Silenciar un hallazgo lo oculta y lo excluye de los informes. -Para restaurar un hallazgo silenciado, haz clic en **Unmute** (Anular el modo de silencio) en el panel de detalles. También puedes utilizar el filtro **Estado** en la página [Vulnerabilidades de Code Security][3] para revisar los hallazgos silenciados. +Para restaurar un hallazgo silenciado, haga clic en {{< ui >}}Unmute{{< /ui >}} en el panel de detalles. También puede usar el filtro {{< ui >}}Status{{< /ui >}} en la página [Code Security Vulnerabilities][3] para revisar los hallazgos silenciados. -### Excluir reglas, archivos o recursos específicos +### Excluya reglas, archivos o recursos específicos {#exclude-specific-rules-files-or-resources} -Puedes configurar exclusiones para evitar que ciertos hallazgos aparezcan en los resultados del análisis. Las exclusiones pueden basarse en el ID de la regla, la ruta del archivo, el tipo de recurso, la gravedad o la etiqueta. +Puede configurar exclusiones para evitar que ciertos hallazgos aparezcan en los resultados del análisis. Las exclusiones pueden basarse en el ID de la regla, la ruta del archivo, el tipo de recurso, la gravedad o la etiqueta. -Las exclusiones se gestionan a través de un archivo de configuración o comentarios en línea en tu código IaC. Para ver los formatos compatibles y ejemplos de uso, consulta [Configurar exclusiones de IaC Security][7]. +Las exclusiones se administran a través de un archivo de configuración o comentarios en línea en su código de IaC. Para conocer los formatos admitidos y ver ejemplos de uso, consulte [Configure IaC Security][7]. -## Siguientes pasos +## Próximos pasos {#next-steps} -1. [Configura IaC Security][1] en tu entorno. -2. Configura [exclusiones de análisis][2] para reducir los falsos positivos o ignorar los resultados esperados. -3. Revisa y clasifica los hallazgos en la página [Vulnerabilidades de Code Security][3]. +1. [Set up IaC Security][1] en su entorno. +2. Configure [IaC Security][2] para reducir los falsos positivos o ignorar los resultados esperados. +3. Revise y clasifique los hallazgos en la página [Code Security Vulnerabilities][3]. +4. Cree [IaC Custom Rules][14] para aplicar requisitos específicos de su organización. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/security/code_security/iac_security/setup -[2]: /es/security/code_security/iac_security/exclusions +[2]: /es/security/code_security/iac_security/configuration [3]: https://app.datadoghq.com/security/code-security/iac [4]: /es/security/ticketing_integrations#bidirectional-ticket-syncing-with-jira [5]: /es/security/code_security/dev_tool_int/github_pull_requests/ [6]: https://app.datadoghq.com/ci/code-analysis? -[7]: /es/security/code_security/iac_security/exclusions/?tab=yaml +[7]: /es/security/code_security/iac_security/configuration/ [8]: /es/security/automation_pipelines/mute [9]: https://app.datadoghq.com/integrations/github/ -[10]: /es/security/automation_pipelines/ \ No newline at end of file +[10]: /es/security/automation_pipelines/ +[11]: /es/pr_gates/ +[12]: /es/pr_gates/setup +[13]: /es/security/code_security/iac_security/iac_rules +[14]: /es/security/code_security/iac_security/custom_rules \ No newline at end of file diff --git a/hugo/content/es/security/code_security/iac_security/setup.md b/hugo/content/es/security/code_security/iac_security/setup.md index 8b7f7abf297..dd1b2d4a892 100644 --- a/hugo/content/es/security/code_security/iac_security/setup.md +++ b/hugo/content/es/security/code_security/iac_security/setup.md @@ -10,20 +10,20 @@ further_reading: text: IaC Security - link: /security/code_security/iac_security/configuration tag: Documentación - text: Configure IaC Security + text: Configurar IaC Security - link: /security/code_security/iac_security/iac_rules/ tag: Documentación text: Reglas de IaC Security -title: Configure IaC Security +title: Configurar IaC Security --- -Utilice las siguientes instrucciones para habilitar IaC Security para Code Security. IaC Security admite múltiples configuraciones de IaC almacenadas en repositorios de GitHub, GitLab o Azure DevOps. +Utilice las siguientes instrucciones para habilitar IaC Security para Code Security. La IaC Security admite múltiples configuraciones de IaC almacenadas en repositorios de GitHub, GitLab, Azure DevOps o Bitbucket Cloud Premium. {{< tabs >}} {{% tab "GitHub" %}} ### Instale la integración de GitHub {#install-the-github-integration} -Para conectar sus repositorios de GitHub y habilitar los comentarios de PR, consulte las instrucciones de configuración en [Comentarios de solicitud de extracción][1]. +Para conectar sus repositorios de GitHub y habilitar los comentarios de PR, consulte las instrucciones de configuración en [Comentarios de solicitudes de extracción][1]. ### Habilite IaC Security para sus repositorios {#enable-iac-security-for-your-repositories} @@ -33,11 +33,11 @@ Después de configurar la integración de GitHub, habilite IaC Security para sus 1. En {{< ui >}}Select your source code management provider{{< /ui >}}, seleccione {{< ui >}}GitHub{{< /ui >}}. 1. En {{< ui >}}Select where your scans should run{{< /ui >}}, seleccione {{< ui >}}Datadog{{< /ui >}}. 1. En {{< ui >}}Connect your GitHub repositories{{< /ui >}}, realice una de las siguientes acciones: - - Para conectar una cuenta de GitHub nueva, haga clic en {{< ui >}}Add GitHub Account{{< /ui >}}. + - Para conectar una nueva cuenta de GitHub, haga clic en {{< ui >}}Add GitHub Account{{< /ui >}}. - Para habilitar IaC Security para una cuenta existente, haga clic en {{< ui >}}Select repositories{{< /ui >}}, o en {{< ui >}}Edit{{< /ui >}} si Code Security ya está habilitado. 1. Para habilitar IaC Security, realice una de las siguientes acciones: - - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición de ENCENDIDO. - - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ENCENDIDO para ese repositorio. + - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición ON. + - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ON para ese repositorio. [1]: /es/security/code_security/dev_tool_int/pull_request_comments/?tab=github#set-up-pull-request-comments [2]: https://app.datadoghq.com/security/configuration/code-security/setup @@ -47,7 +47,7 @@ Después de configurar la integración de GitHub, habilite IaC Security para sus ### Instale la integración de GitLab {#install-the-gitlab-integration} -Para conectar sus repositorios de GitLab y habilitar los comentarios en PR, consulte las instrucciones de configuración en [GitLab Source Code][1]. +Para conectar sus repositorios de GitLab y habilitar comentarios en PR, consulte las instrucciones de configuración en [GitLab Source Code][1]. ### Habilite IaC Security para sus repositorios {#enable-iac-security-for-your-repositories-1} @@ -60,8 +60,8 @@ Después de configurar la integración de GitLab, habilite IaC Security para sus - Para conectar una nueva instancia de GitLab, haga clic en {{< ui >}}Connect GitLab Instance{{< /ui >}}. - Para habilitar IaC Security para una cuenta existente, haga clic en {{< ui >}}Select repositories{{< /ui >}}, o en {{< ui >}}Edit{{< /ui >}} si Code Security ya está habilitado. 1. Para habilitar IaC Security, realice una de las siguientes acciones: - - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición de ENCENDIDO. - - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ENCENDIDO para ese repositorio. + - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición ON. + - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ON para ese repositorio. [1]: /es/integrations/gitlab-source-code/#setup [2]: https://app.datadoghq.com/security/configuration/code-security/setup @@ -71,25 +71,49 @@ Después de configurar la integración de GitLab, habilite IaC Security para sus ### Instale la integración de Azure DevOps {#install-the-azure-devops-integration} -Para conectar sus repositorios de Azure DevOps y habilitar los comentarios en PR, consulte las instrucciones de configuración en [Azure DevOps Source Code][1]. +Para conectar sus repositorios de Azure DevOps y habilitar comentarios en PR, consulte las instrucciones de configuración en [Azure DevOps Source Code][1]. ### Habilite IaC Security para sus repositorios {#enable-iac-security-for-your-repositories-2} Después de configurar la integración de Azure DevOps, habilite IaC Security para sus repositorios. -1. En la [página de configuración de Code Security][2], expanda la sección {{< ui >}}Activate scanning for your repositories{{< /ui >}} +1. En la [página de configuración de Code Security][2], expanda la sección {{< ui >}}Activate scanning for your repositories{{< /ui >}}. 1. En {{< ui >}}Select your source code management provider{{< /ui >}}, seleccione {{< ui >}}Azure DevOps{{< /ui >}}. 1. En {{< ui >}}Select where your scans should run{{< /ui >}}, seleccione {{< ui >}}Datadog{{< /ui >}}. 1. En {{< ui >}}Connect your Azure DevOps repositories{{< /ui >}}, realice una de las siguientes acciones: - Para conectar una nueva organización de Azure DevOps, haga clic en {{< ui >}}Connect Microsoft Entra App{{< /ui >}}. - Para habilitar IaC Security para una cuenta existente, haga clic en {{< ui >}}Select repositories{{< /ui >}}, o en {{< ui >}}Edit{{< /ui >}} si Code Security ya está habilitado. 1. Para habilitar IaC Security, realice una de las siguientes acciones: - - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición de ENCENDIDO. - - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ENCENDIDO para ese repositorio. + - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición ON. + - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ON para ese repositorio. [1]: /es/integrations/azure-devops-source-code/#source-code-functionality [2]: https://app.datadoghq.com/security/configuration/code-security/setup +{{% /tab %}} +{{% tab "Bitbucket Cloud" %}} + +### Instale la integración de Bitbucket {#install-the-bitbucket-integration} + +Para conectar su espacio de trabajo de Bitbucket Cloud y habilitar comentarios en PR, consulte las instrucciones de configuración en [Bitbucket Source Code][1]. + +### Habilite IaC Security para sus repositorios {#enable-iac-security-for-your-repositories-3} + +Después de configurar la integración de Bitbucket, habilite IaC Security para sus repositorios. + +1. En la [página de configuración de Code Security][2], expanda la sección {{< ui >}}Activate scanning for your repositories{{< /ui >}}. +1. En {{< ui >}}Select your source code management provider{{< /ui >}}, seleccione {{< ui >}}Bitbucket{{< /ui >}}. +1. En {{< ui >}}Select where your scans should run{{< /ui >}}, seleccione {{< ui >}}Datadog{{< /ui >}}. +1. En {{< ui >}}Connect your Bitbucket repositories{{< /ui >}}, realice una de las siguientes acciones: + - Para conectar un nuevo espacio de trabajo de Bitbucket Cloud, haga clic en {{< ui >}}Connect Bitbucket Account{{< /ui >}}. + - Para habilitar IaC Security para un espacio de trabajo existente, haga clic en {{< ui >}}Select repositories{{< /ui >}}, o en {{< ui >}}Edit{{< /ui >}} si Code Security ya está habilitado. +1. Para habilitar IaC Security, realice una de las siguientes acciones: + - Para habilitar IaC Security para todos los repositorios, cambie {{< ui >}}Enable Infrastructure as Code Scanning (IaC){{< /ui >}} a la posición ON. + - Para habilitar IaC Security para un solo repositorio, cambie el interruptor {{< ui >}}IaC{{< /ui >}} a ON para ese repositorio. + +[1]: /es/integrations/bitbucket-source-code/#setup +[2]: https://app.datadoghq.com/security/configuration/code-security/setup + {{% /tab %}} {{< /tabs >}} @@ -97,9 +121,9 @@ Después de configurar la integración de Azure DevOps, habilite IaC Security pa ### Descripción general {#overview} -Si no utiliza GitHub Actions, GitLab CI/CD o Azure DevOps, puede ejecutar el [Datadog IaC Scanner][8] directamente en su canalización de CI. Cargue los resultados del escaneo de IaC a Datadog utilizando la [`datadog-ci` CLI][9]. +Si no utiliza GitHub Actions, GitLab CI/CD o Azure DevOps, puede ejecutar el [Datadog IaC Scanner][8] directamente en su pipeline de CI. Cargue los resultados del escaneo de IaC a Datadog utilizando la [`datadog-ci` CLI][9]. -**Si está ejecutando IaC Security en un repositorio que no es de GitHub**, ejecute el primer escaneo en su rama predeterminada. Si su rama predeterminada utiliza un nombre distinto a `master`, `main`, `default`, `stable`, `source`, `prod` o `develop`, cargue un primer escaneo para su repositorio. Luego, sobrescriba manualmente la rama predeterminada en [{{< ui >}}Repository Settings{{< /ui >}}][10] para que los escaneos futuros de ramas que no sean la predeterminada se carguen y procesen correctamente. +**Si está ejecutando IaC Security en un repositorio que no es de GitHub**, ejecute el primer análisis en su rama predeterminada. Si su rama predeterminada utiliza un nombre distinto a `master`, `main`, `default`, `stable`, `source`, `prod` o `develop`, cargue un primer análisis para su repositorio. Luego, sobrescriba manualmente la rama predeterminada en [{{< ui >}}Repository Settings{{< /ui >}}][10] para que los futuros análisis de ramas que no sean la predeterminada se carguen y procesen correctamente. ### Requisitos previos {#prerequisites} @@ -112,11 +136,11 @@ Configure las siguientes variables de entorno: | Nombre | Descripción | Requerido | Predeterminado | | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------- | -| `DD_API_KEY` | Su clave de API de Datadog. Cree esta clave en su [organización de Datadog][4] y almacene la clave como un secreto. | Sí | | +| `DD_API_KEY` | Su clave de API de Datadog. Cree esta clave en su [organización de Datadog][4] y almacénela como un secreto. | Sí | | | `DD_APP_KEY` | Su clave de aplicación. Cree esta clave en su [organización de Datadog][4] e incluya el contexto `code_analysis_read`. Almacene la clave como un secreto. | Sí | | -| `DD_SITE` | El [sitio de Datadog][5] al que enviar información. Su sitio de Datadog es `datadoghq.com`. | No | `datadoghq.com` | +| `DD_SITE` | El [sitio de Datadog][5] al que se enviará la información. Su sitio de Datadog es `datadoghq.com`. | No | `datadoghq.com` | -Agregue lo siguiente a su pipeline de CI: +Agregue lo siguiente a su canalización de CI: ```bash # Set the Datadog site to send information to @@ -141,10 +165,10 @@ datadog-ci sarif upload /tmp/datadog-iac-scanner-result.sarif ```
- Este ejemplo utiliza la versión de Linux x86_64 (amd64) del Datadog IaC Scanner. El escáner también es compatible con Linux arm64, así como con macOS y Windows. Si está utilizando un sistema operativo o una arquitectura diferente, seleccione la versión adecuada en la página de GitHub Releases y actualice el IAC_SCANNER_URL valor. + Este ejemplo utiliza la versión de Linux x86_64 (amd64) del Datadog IaC Scanner. El escáner también es compatible con Linux arm64, así como con macOS y Windows. Si está utilizando un sistema operativo o una arquitectura diferente, seleccione la versión adecuada de la página de GitHub Releases y actualice el IAC_SCANNER_URL Valor.
-## Cargue los resultados de análisis estático de terceros a IaC Security {#upload-third-party-static-analysis-results-to-iac-security} +## Cargue resultados de análisis estático de terceros a IaC Security {#upload-third-party-static-analysis-results-to-iac-security}
Puede importar resultados SARIF de escáneres de infraestructura como código (IaC) de terceros, incluido Checkov, a IaC Security. Consulte @@ -154,29 +178,29 @@ datadog-ci sarif upload /tmp/datadog-iac-scanner-result.sarif Para cargar un informe SARIF: 1. Asegúrese de que las variables [`DD_API_KEY` y `DD_APP_KEY` estén definidas][4]. -2. Opcionalmente, establezca una [`DD_SITE` variable][5] (el valor predeterminado es `datadoghq.com`). +2. Opcionalmente, establezca una [`DD_SITE` variable][5] (esto tiene como valor predeterminado `datadoghq.com`). 3. Instale la utilidad `datadog-ci` (versión 2.0 o posterior): ```bash npm install -g @datadog/datadog-ci ``` -4. Ejecute la herramienta de IaC Scanning de terceros (por ejemplo, Checkov, Trivy, KICS) en su código y exporte los resultados en el formato SARIF v2.1.0. +4. Ejecute la herramienta de análisis de IaC de terceros (por ejemplo, Checkov, Trivy, KICS) en su código y genere los resultados en el formato SARIF v2.1.0. 5. Cargue los resultados en Datadog: ```bash datadog-ci sarif upload $OUTPUT_LOCATION ``` - Opciones de carga - - `--tags:` Agregue etiquetas personalizadas (formato: `key:value`) - - `--max-concurrency:` Establezca cargas simultáneas (predeterminado: 20) - - `--dry-run:` Valide sin cargar + - `--tags:` Agregar etiquetas personalizadas (formato: `key:value`) + - `--max-concurrency:` Establecer cargas simultáneas (predeterminado: 20) + - `--dry-run:` Validar sin cargar ### Atributos SARIF requeridos {#required-sarif-attributes} -Para garantizar la ingesta y visualización adecuadas en Datadog IaC Scanning para escáneres de terceros (excluyendo Checkov), su archivo SARIF DEBE incluir los siguientes atributos para ser reconocido como un hallazgo de IaC Security: +Para garantizar la ingesta y visualización adecuadas en Datadog IaC Scanning para escáneres de terceros (excluyendo Checkov), su archivo SARIF DEBE incluir los siguientes atributos para ser reconocido como un hallazgo de seguridad de IaC: 1. `Runs[...].tool.driver.name: Datadog IaC Scanning` 2. `Runs[...].tool.driver.version: "code_update"` o `"full_scan"` - `"full_scan”` para escaneos completos del repositorio - - `"code_update"` para escaneos de solicitudes de extracción / incrementales + - `"code_update"` para pull request / incremental scans 4. `Runs[...].tool.driver.rules[...].properties.tags:` - `["DATADOG_RULE_TYPE:IAC_SCANNING"]` - `[“DATADOG_SCANNED_FILE_COUNT: ”]`, donde `"number"` especifica el número de archivos escaneados @@ -186,7 +210,7 @@ Para garantizar la ingesta y visualización adecuadas en Datadog IaC Scanning pa - `region.endLine`: Número de línea final - `region.startColumn`: Número de columna inicial - `region.endColumn`: Número de columna final -
Las supresiones descartan las violaciones silenciosamente. Si results[ ].suppressions existe, la violación se ignora por completo.
+
Las supresiones descartan las infracciones silenciosamente. Si results[ ].suppressions existe, la infracción se ignora por completo.
## Lecturas adicionales {#further-reading} diff --git a/hugo/content/es/security/code_security/static_analysis/configuration.md b/hugo/content/es/security/code_security/static_analysis/configuration.md index 2f3d21dcb57..fc9035ff53e 100644 --- a/hugo/content/es/security/code_security/static_analysis/configuration.md +++ b/hugo/content/es/security/code_security/static_analysis/configuration.md @@ -1,10 +1,10 @@ --- -description: Documentación de referencia para la configuración de Datadog Static Code - Analysis (SAST), que abarca la selección de conjuntos de reglas, la personalización - de reglas, los niveles de gravedad y las rutas. -title: Static Code Analysis (SAST) Configuration +description: Documentación de referencia para la configuración del Análisis de código + estático (SAST) de Datadog, que abarca la selección de conjuntos de reglas, la personalización + de reglas, las gravedades y las rutas. +title: Configuración del Análisis de código estático (SAST) --- -De forma predeterminada, Static Code Analysis (SAST) de Datadog escanea sus repositorios con los [conjuntos de reglas predeterminados de Datadog][6] para cada lenguaje de programación. Puede personalizar qué conjuntos de reglas y reglas se ejecutan, junto con los niveles de gravedad, las rutas y otros parámetros. Configure estos ajustes bajo la clave `sast` en la configuración de Code Security, ya sea en Datadog o en un archivo `code-security.datadog.yaml`. +De forma predeterminada, el Análisis de código estático (SAST) de Datadog escanea sus repositorios con los [conjuntos de reglas predeterminados de Datadog][6] para cada lenguaje de programación. Puede personalizar qué conjuntos de reglas y reglas se ejecutan, junto con las gravedades, las rutas y otros parámetros. Configure estos ajustes bajo la clave `sast` en la configuración de Code Security, ya sea en Datadog o en un archivo `code-security.datadog.yaml`. Para obtener información sobre las ubicaciones de configuración, la precedencia y la combinación, consulte [Referencia de configuración de Code Security][26]. @@ -12,21 +12,22 @@ Para obtener información sobre las ubicaciones de configuración, la precedenci De forma predeterminada, Datadog habilita los conjuntos de reglas predeterminados para los lenguajes de programación de su repositorio (`use-default-rulesets: true`). Para modificar los conjuntos de reglas habilitados: -- **Agregar conjuntos de reglas**: listar debajo de `use-rulesets` -- **Deshabilitar conjuntos de reglas específicos**: listar debajo de `ignore-rulesets` -- **Deshabilitar todos los conjuntos de reglas predeterminados**: establezca `use-default-rulesets: false`, luego listar los conjuntos de reglas deseados bajo `use-rulesets` +- **Agregar conjuntos de reglas**: liste bajo `use-rulesets` +- **Deshabilitar conjuntos de reglas específicos**: liste bajo `ignore-rulesets` +- **Deshabilitar todos los conjuntos de reglas predeterminados**: establezca `use-default-rulesets: false`, luego liste los conjuntos de reglas deseados bajo `use-rulesets` Para obtener la lista completa de conjuntos de reglas predeterminados, consulte [Reglas de Análisis de código estático (SAST)][6]. -## Configure AI-native SAST {#configure-ai-native-sast} +## Configurar SAST nativo de IA {#configure-ai-native-sast} -AI-native SAST utiliza la misma configuración de `sast` que otras reglas de Static Code Analysis y solo está disponible para escaneos alojados en Datadog. La configuración de `sast` controla qué conjuntos de reglas de AI-native SAST se ejecutan; no habilita el escaneo alojado en Datadog ni otorga acceso a AI-native SAST. +El SAST nativo de IA utiliza la misma configuración `sast` que otras reglas de Análisis de código estático y solo está disponible para escaneos alojados en Datadog. La configuración `sast` controla qué conjuntos de reglas de SAST nativo de IA se ejecutan; no habilita el escaneo alojado en Datadog ni otorga acceso al SAST nativo de IA. -Cuando se habilita AI-native SAST, sus conjuntos de reglas predeterminados se ejecutan para los lenguajes compatibles detectados en el repositorio. Los nombres de los conjuntos de reglas de AI-native SAST utilizan el formato `-ai_sast`: +Cuando el SAST nativo de IA está habilitado, sus conjuntos de reglas predeterminados se ejecutan para los lenguajes compatibles detectados en el repositorio. Los nombres de los conjuntos de reglas de SAST nativo de IA utilizan el formato `-ai_sast`: | Lenguaje | Conjunto de reglas | | --- | --- | | C# | `csharp-ai_sast` | +| C++ | `cpp-ai_sast` | | Dart | `dart-ai_sast` | | Elixir | `elixir-ai_sast` | | Go | `go-ai_sast` | @@ -40,7 +41,7 @@ Cuando se habilita AI-native SAST, sus conjuntos de reglas predeterminados se ej | Swift | `swift-ai_sast` | | TypeScript | `typescript-ai_sast` | -La configuración `use-default-rulesets` se aplica tanto a los conjuntos de reglas tradicionales de SAST como a los de AI-native SAST. Si establece `use-default-rulesets: false`, incluya todos los conjuntos de reglas tradicionales de SAST y de AI-native SAST que desee ejecutar. Por ejemplo, la siguiente configuración ejecuta los conjuntos de reglas Security de Ruby y los de AI-native SAST: +La configuración `use-default-rulesets` se aplica tanto a los conjuntos de reglas de SAST tradicional como a los de SAST nativo de IA. Si configura `use-default-rulesets: false`, incluya todos los conjuntos de reglas SAST tradicionales y nativos de IA que desee ejecutar. Por ejemplo, la siguiente configuración ejecuta los conjuntos de reglas de seguridad de Ruby y SAST nativo de IA: {{< code-block lang="yaml" >}} schema-version: v1.4 @@ -51,7 +52,7 @@ sast: - ruby-ai_sast {{< /code-block >}} -Para deshabilitar un conjunto de reglas de AI-native SAST específico mientras conserva los otros conjuntos de reglas predeterminados, agréguelo a `ignore-rulesets`: +Para desactivar un conjunto de reglas SAST nativo de IA específico mientras conserva los otros conjuntos de reglas predeterminados, agréguelo a `ignore-rulesets`: {{< code-block lang="yaml" >}} schema-version: v1.4 @@ -63,7 +64,7 @@ sast: ## Formato de configuración {#configuration-format} -El siguiente formato de configuración se aplica a todas las ubicaciones de configuración: a nivel de organización, a nivel de repositorio y a nivel de repositorio (archivo). +El siguiente formato de configuración se aplica a todas las ubicaciones de configuración: nivel de organización, nivel de repositorio y nivel de repositorio (archivo). El archivo de configuración debe comenzar con un `schema-version` compatible (`v1.0`, `v1.1`, `v1.2`, `v1.3` o `v1.4`), seguido de una clave `sast` que contenga la configuración de análisis. Use `v1.4` para todas las configuraciones nuevas. La configuración está estructurada como se muestra a continuación: @@ -145,14 +146,14 @@ Cada entrada en el mapa `ruleset-configs` configura un conjunto de reglas espec ## Configuración de regla {#rule-configuration} -Cada entrada en el mapa `rule-configs` de un conjunto de reglas configura una regla específica: +Cada entrada en el mapa `rule-configs` de un ruleset configura una regla específica: | **Propiedad** | **Tipo** | **Descripción** | **Predeterminado** | | --- | --- | --- | --- | | `only-paths` | Matriz | Rutas de archivo o patrones glob. La regla se aplica solo a los archivos que coinciden con estos patrones. | Ninguno | | `ignore-paths` | Matriz | Rutas de archivo o patrones glob para excluir. La regla no se aplica a los archivos que coinciden con estos patrones. | Ninguno | | `arguments` | Objeto | Parámetros y valores para la regla. Los valores pueden ser escalares o definirse por ruta. | Ninguno | -| `severity` | Cadena u objeto | La gravedad de la regla. Valores válidos: `ERROR`, `WARNING`, `NOTICE`, `NONE`. Puede ser un valor único o definido por ruta. | Ninguno | +| `severity` | Cadena u objeto | La gravedad de la regla. Valores válidos: `ERROR`, `WARNING`, `NOTICE`, `NONE`. Puede ser un valor único o definirse por ruta. | Ninguno | | `category` | Cadena | La categoría de la regla. Valores válidos: `BEST_PRACTICES`, `CODE_STYLE`, `ERROR_PRONE`, `PERFORMANCE`, `SECURITY`. | Ninguno | ## Configuración de argumento y gravedad {#argument-and-severity-configuration} @@ -167,7 +168,7 @@ Los argumentos y la gravedad se pueden definir en uno de dos formatos: severity: ERROR {{< /code-block >}} -2. **Asignación por ruta:** Valores diferentes para diferentes subárboles. Se aplica el prefijo de ruta coincidente más largo. Use `/` como valor predeterminado general. +2. **Asignación por ruta:** Valores diferentes para subárboles diferentes. Se aplica el prefijo de ruta coincidente más largo. Use `/` como valor predeterminado general. {{< code-block lang="yaml" >}} arguments: @@ -181,8 +182,8 @@ Los argumentos y la gravedad se pueden definir en uno de dos formatos: | **Clave** | **Tipo** | **Descripción** | **Predeterminado** | | --- | --- | --- | --- | - | `/` | Cualquiera | El valor predeterminado cuando no se encuentra ninguna ruta específica. | Ninguno | - | `specific path` | Cualquiera | El valor para los archivos que coinciden con la ruta o el patrón glob especificado. | Ninguno | + | `/` | Cualquiera | El valor predeterminado cuando no coincide ninguna ruta específica. | Ninguno | + | `specific path` | Cualquiera | El valor para archivos que coinciden con la ruta o el patrón glob especificado. | Ninguno | El campo `category` acepta un único valor de cadena para todo el repositorio. @@ -193,14 +194,14 @@ El objeto `global-config` controla la configuración de todo el repositorio: | **Propiedad** | **Tipo** | **Descripción** | **Predeterminado** | | --- | --- | --- | --- | | `only-paths` | Matriz | Rutas de archivo o patrones glob. Solo se analizan los archivos que coinciden. | Ninguno | -| `ignore-paths` | Matriz | Rutas de archivo o patrones glob a excluir. Los archivos que coinciden no se analizan. | Ninguno | -| `use-gitignore` | Booleano | Indica si se deben incluir entradas del archivo `.gitignore` en `ignore-paths`. | `true` | -| `ignore-generated-files` | Booleano | Indica si se deben incluir patrones de archivos generados comunes en `ignore-paths`. | `true` | +| `ignore-paths` | Matriz | Rutas de archivo o patrones glob para excluir. Los archivos que coinciden no se analizan. | Ninguno | +| `use-gitignore` | Booleano | Si se deben incluir entradas del archivo `.gitignore` en `ignore-paths`. | `true` | +| `ignore-generated-files` | Booleano | Si se deben incluir patrones de archivos generados comunes en `ignore-paths`. | `true` | | `max-file-size-kb` | Número | Tamaño máximo de archivo (en kB) a analizar. Los archivos más grandes se ignoran. | `200` | Ejemplo de configuración: -Debido a que este ejemplo deshabilita los conjuntos de reglas predeterminados, el ejemplo incluye explícitamente `python-ai_sast` para conservar AI-native SAST para Python: +Debido a que este ejemplo deshabilita los conjuntos de reglas predeterminados, el ejemplo incluye explícitamente `python-ai_sast` para conservar SAST nativo de IA para Python: {{< code-block lang="yaml" >}} schema-version: v1.4 @@ -262,11 +263,11 @@ sast: ## Configuración heredada {#legacy-configuration} -Datadog Static Code Analysis (SAST) utilizaba anteriormente un archivo de configuración (`static-analysis.datadog.yml`) y un esquema diferentes. Este esquema está obsoleto y no recibe nuevas actualizaciones, pero está [documentado][25] en el repositorio `datadog-static-analyzer`. +El Análisis de código estático (SAST) de Datadog utilizaba anteriormente un archivo de configuración (`static-analysis.datadog.yml`) y un esquema diferentes. Este esquema está obsoleto y no recibe nuevas actualizaciones, pero está [documentado][25] en el repositorio `datadog-static-analyzer`. Si ambos archivos están presentes, `code-security.datadog.yaml` tiene prioridad sobre `static-analysis.datadog.yml`. -### Ignorando infracciones {#ignoring-violations} +### Ignorar violaciones {#ignoring-violations} #### Ignorar para un repositorio {#ignore-for-a-repository} @@ -285,7 +286,7 @@ sast: #### Ignorar para un archivo o directorio {#ignore-for-a-file-or-directory} -Agregue una configuración de regla en su archivo `code-security.datadog.yaml`. El siguiente ejemplo ignora la regla `javascript-express/reduce-server-fingerprinting` para un archivo específico. Para obtener más información sobre cómo ignorar por ruta, consulte [Personalice su configuración](#customize-your-configuration). +Agregue una configuración de regla en su archivo `code-security.datadog.yaml`. El siguiente ejemplo ignora la regla `javascript-express/reduce-server-fingerprinting` para un archivo específico. Para obtener más información sobre cómo ignorar por ruta, consulte [Personalice su configuración ](#customize-your-configuration). {{< code-block lang="yaml" >}} schema-version: v1.0 @@ -300,11 +301,11 @@ sast: #### Ignorar para una instancia específica {#ignore-for-a-specific-instance} -Para ignorar una instancia específica de una infracción, comente `no-dd-sa` sobre la línea de código. Las infracciones suprimidas con `no-dd-sa` se muestran como **suprimidas**, en lugar de omitirse por completo, para que pueda buscarlas y auditarlas. +Para ignorar una instancia específica de una violación, comente `no-dd-sa` sobre la línea de código. Las violaciones suprimidas con `no-dd-sa` se muestran como **suprimidas**, en lugar de omitirse por completo, para que pueda buscarlas y auditarlas. -En la [página de repositorios][1], las infracciones suprimidas aparecen con `is_suppressed: true`. En el [explorador de vulnerabilidades][2], aparecen con `status: muted` y `workflow.mute.reason: muted_in_code`. +En la [página de Repositorios][1], las violaciones suprimidas aparecen con `is_suppressed: true`. En el [explorador de vulnerabilidades][2], aparecen con `status: muted` y `workflow.mute.reason: muted_in_code`. -Por ejemplo, en el siguiente fragmento de código Python, la línea `foo = 1` se suprimiría en los análisis de código estático. +Por ejemplo, en el siguiente fragmento de código Python, la línea `foo = 1` se suprimiría en los análisis de Static Code Analysis. {{< code-block lang="python" >}} #no-dd-sa @@ -316,7 +317,7 @@ También puede usar `no-dd-sa` para suprimir solo una regla en particular, en lu `no-dd-sa:` -Por ejemplo, en el siguiente fragmento de código JavaScript, la línea `my_foo = 1` se suprime solo para la regla `javascript-code-style/assignment-name`, pero todas las demás reglas aún la analizan. +Por ejemplo, en el siguiente fragmento de código JavaScript, la línea `my_foo = 1` se suprime solo para la regla `javascript-code-style/assignment-name`, pero todas las demás reglas siguen analizándola. {{< code-block lang="javascript" >}} // no-dd-sa:javascript-code-style/assignment-name diff --git a/hugo/content/es/security/workload_protection/investigate_and_triage/security_findings.md b/hugo/content/es/security/workload_protection/investigate_and_triage/security_findings.md new file mode 100644 index 00000000000..6bd49418a41 --- /dev/null +++ b/hugo/content/es/security/workload_protection/investigate_and_triage/security_findings.md @@ -0,0 +1,69 @@ +--- +description: Revise y clasifique los hallazgos de Workload Protection para abordar + los problemas de postura de seguridad en tiempo de ejecución. +disable_toc: false +further_reading: +- link: /security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules + tag: Documentación + text: Obtenga información sobre las reglas de hallazgo +title: Hallazgos +--- +Los hallazgos de [Workload Protection][1] se generan cuando los eventos de Agent de un recurso (un servidor o contenedor) coinciden con una [regla de hallazgo][2]. Visualice, filtre y clasifique los hallazgos en el [Findings Explorer][3] para evaluar y mejorar su postura de seguridad en tiempo de ejecución. + +Datadog almacena un historial completo de hallazgos para investigación y auditoría. + +## Findings Explorer {#findings-explorer} + +El [Findings Explorer][3] enumera los hallazgos en toda su infraestructura. Cada entrada muestra el recurso afectado, la regla de hallazgo que generó el hallazgo, cuándo se informó el problema por primera vez, su estado actual y el equipo o servicio responsable. + +Haga clic en {{< ui >}}View All{{< /ui >}} para ver una lista completa de los recursos afectados por la misma regla de hallazgo. + +### Filtrar hallazgos {#filter-findings} + +Utilice la barra de búsqueda y el panel de facetas para limitar los hallazgos por gravedad, estado de clasificación, regla, servidor o contenedor. + +Para filtrar por estado de clasificación, utilice la consulta de búsqueda `@workflow.triage.status:(open OR in-progress)`. + +### Agrupar hallazgos {#group-findings} + +Utilice {{< ui >}}Group by{{< /ui >}} para organizar la lista: + +- {{< ui >}}Rule Name{{< /ui >}}: Agrupa los recursos por regla de hallazgo. +- {{< ui >}}Resource Name{{< /ui >}}: Agrupa los hallazgos por servidor o contenedor. +- {{< ui >}}None{{< /ui >}}: Muestra una lista plana de hallazgos. + +### Guardar visualizaciones {#save-views} + +Para guardar su búsqueda actual y la configuración de filtros para su uso futuro, coloque el cursor sobre {{< ui >}}Views{{< /ui >}} y haga clic en {{< ui >}}Save as new view{{< /ui >}}. + +## Detalles del hallazgo {#finding-details} + +Haga clic en cualquier hallazgo para abrir el panel lateral con información detallada sobre el recurso y la regla de hallazgo que lo generó. + +{{< img src="security/workload_protection/investigate_and_triage/findings/findings_side_panel.png" alt="Panel lateral de hallazgos que muestra la sección \"What Happened\" y los controles de triaje" width="100%">}} + +La sección {{< ui >}}What Happened{{< /ui >}} muestra: + +- Cuándo se informó el hallazgo por primera vez. +- La ubicación del recurso afectado. +- La regla de hallazgo que coincidió. + +Seleccione la pestaña {{< ui >}}Trigger Event{{< /ui >}} para revisar el evento del Agent asociado con el hallazgo. + +### Guía de remediación {#remediation-guidance} + +Cada regla de hallazgo OOTB incluye una guía de remediación redactada por el equipo de seguridad de Datadog. Seleccione la pestaña {{< ui >}}Remediation{{< /ui >}} para revisar los pasos de remediación y solucionar la configuración incorrecta subyacente. + +{{< img src="security/workload_protection/investigate_and_triage/findings/findings_remediation.png" alt="Detalles del hallazgo que muestran los pasos de remediación para un recurso afectado" width="100%">}} + +## Clasificar hallazgos {#triage-findings} + +Utilice {{< ui >}}Next Steps{{< /ui >}} en el panel lateral de hallazgos para gestionar los hallazgos: + +- {{< ui >}}Status{{< /ui >}}: Actualice el estado del hallazgo para reflejar el progreso de la investigación. +- {{< ui >}}Mute{{< /ui >}}: Suprima un hallazgo durante un periodo determinado cuando el comportamiento sea esperado o aceptable. +- {{< ui >}}Add Ticket{{< /ui >}}: Añada el hallazgo a un ticket para su seguimiento. + +[1]: /es/security/workload_protection/ +[2]: /es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules +[3]: https://app.datadoghq.com/security/workload-protection/findings \ No newline at end of file diff --git a/hugo/content/es/serverless/azure_database_messaging_services/_index.md b/hugo/content/es/serverless/azure_database_messaging_services/_index.md index c04af569914..e41841d2679 100644 --- a/hugo/content/es/serverless/azure_database_messaging_services/_index.md +++ b/hugo/content/es/serverless/azure_database_messaging_services/_index.md @@ -1,14 +1,23 @@ --- -title: Servicios de Base de Datos y Mensajería de Azure +further_reading: +- link: https://www.datadoghq.com/blog/monitor-azure-functions-hosting-plans/ + tag: Blog + text: Haga un seguimiento de Azure Functions en todos los planes de hospedaje con + Datadog +title: Servicios de base de datos y mensajería de Azure --- ## Descripción general {#overview} -Datadog APM utiliza **tramos inferidos** para recopilar trazas y métricas de traza de Azure Cosmos DB, Event Hubs y Service Bus. Los tramos inferidos aparecen automáticamente en flame graph y en vistas en cascada para los servicios instrumentados por Datadog que se ejecutan en Azure. No se requiere configuración adicional. Para configurar la instrumentación para cargas de trabajo Serverless de Azure, consulte [Serverless Monitoring][1]. +Datadog APM utiliza **intervalos inferidos** para recopilar trazas y métricas de traza de Azure Cosmos DB, Event Hubs y Service Bus. Los intervalos inferidos aparecen automáticamente en el flame graph y en las waterfall views para los servicios instrumentados por Datadog que se ejecutan en Azure. No se requiere configuración adicional. Para configurar la instrumentación para cargas de trabajo Serverless de Azure, consulte [Serverless Monitoring][1]. {{< card-grid card_width="170px" >}} - {{< image-card href="azure_cosmosdb/" src="integrations_logos/azure_cosmosdb.png" alt="azure_cosmosdb" >}} - {{< image-card href="azure_event_hubs/" src="integrations_logos/azure_event_hub.png" alt="azure_event_hubs" >}} - {{< image-card href="azure_service_bus/" src="integrations_logos/azure_service_bus.png" alt="azure_service_bus" >}} + {{< image-card href="/serverless/azure_database_messaging_services/azure_cosmosdb/" src="integrations_logos/azure_cosmosdb.png" alt="azure_cosmosdb" >}} + {{< image-card href="/serverless/azure_database_messaging_services/azure_event_hubs/" src="integrations_logos/azure_event_hub.png" alt="azure_event_hubs" >}} + {{< image-card href="/serverless/azure_database_messaging_services/azure_service_bus/" src="integrations_logos/azure_service_bus.png" alt="azure_service_bus" >}} {{< /card-grid >}} +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + [1]: /es/serverless \ No newline at end of file diff --git a/hugo/content/es/synthetics/api_tests/http_tests.md b/hugo/content/es/synthetics/api_tests/http_tests.md index 7ec35eb7a26..dfa3f6bbaf8 100644 --- a/hugo/content/es/synthetics/api_tests/http_tests.md +++ b/hugo/content/es/synthetics/api_tests/http_tests.md @@ -11,63 +11,63 @@ aliases: - /es/synthetics/http_test - /es/synthetics/http_check - /es/synthetics/guide/or-logic-api-tests-assertions -description: Simular solicitudes HTTP para monitorear puntos finales de API públicos - e internos. +description: Simule solicitudes HTTP para hacer un seguimiento de los puntos finales + de API públicos e internos. further_reading: - link: https://www.datadoghq.com/blog/introducing-synthetic-monitoring/ - tag: Blog - text: Presentamos el Monitoreo Sintético de Datadog + tag: blog + text: Introducción a Datadog Synthetic Monitoring - link: https://learn.datadoghq.com/courses/intro-to-synthetic-tests - tag: Centro de Aprendizaje - text: Introducción a las Pruebas Sintéticas + tag: Centro de aprendizaje + text: Introducción a las pruebas Synthetic - link: /getting_started/synthetics/api_test tag: Documentación - text: Comience con pruebas HTTP + text: Comience con las pruebas HTTP - link: /synthetics/private_locations tag: Documentación - text: Ejecutar pruebas HTTP en puntos finales internos + text: Ejecute pruebas HTTP en puntos finales internos - link: /synthetics/multistep tag: Documentación - text: Ejecutar pruebas HTTP de múltiples pasos + text: Ejecute pruebas HTTP de varios pasos - link: /synthetics/guide/synthetic-test-monitors tag: Documentación - text: Aprenda sobre los monitores de prueba Synthetic + text: Obtenga información sobre los monitores de prueba Synthetic title: Pruebas HTTP --- -## Resumen {#overview} +## Descripción general {#overview} -Las pruebas HTTP le permiten enviar solicitudes HTTP a los puntos finales de la API de sus aplicaciones para verificar respuestas y condiciones definidas, como el tiempo de respuesta general, el código de estado esperado, el encabezado o el contenido del cuerpo. +Las pruebas HTTP le permiten enviar solicitudes HTTP a los puntos finales de API de sus aplicaciones para verificar las respuestas y las condiciones definidas, como el tiempo de respuesta general, el código de estado esperado, el encabezado o el contenido del cuerpo. -Las pruebas HTTP pueden ejecutarse desde [ubicaciones gestionadas](#select-locations) y [ubicaciones privadas][1] dependiendo de su preferencia por ejecutar la prueba desde fuera o dentro de su red. Las pruebas HTTP pueden ejecutarse según un horario, a demanda o directamente dentro de sus [canalizaciones de CI/CD][2]. +Las pruebas HTTP pueden ejecutarse desde ubicaciones [administradas](#select-locations) y [privadas][1] según su preferencia para ejecutar la prueba desde fuera o dentro de su red. Las pruebas HTTP pueden ejecutarse según un horario, bajo demanda o directamente dentro de sus [CI/CD pipelines][2]. ## Configuración {#configuration} Puede crear una prueba utilizando una de las siguientes opciones: - - **Crear una prueba a partir de una plantilla**: + - **Cree una prueba a partir de una plantilla**: - 1. Pase el cursor sobre una de las plantillas predefinidas y haga clic en **Ver Plantilla**. Esto abre un panel lateral que muestra información de configuración predefinida, incluyendo: Detalles de la Prueba, Detalles de la Solicitud, Afirmaciones, Condiciones de Alerta y Configuraciones de Monitoreo. - 2. Haga clic en **+Crear prueba** para abrir la página **Definir solicitud**, donde puede revisar y editar las opciones de configuración predefinidas. Los campos presentados son idénticos a los disponibles al crear una prueba desde cero. - 3. Haga clic en **Guardar detalles** para enviar su prueba de API.

+ 1. Pase el cursor sobre una de las plantillas precargadas y haga clic en {{< ui >}}View Template{{< /ui >}}. Esto abre un panel lateral que muestra información de configuración precargada, incluyendo: {{< ui >}}Test Details{{< /ui >}}, {{< ui >}}Request Details{{< /ui >}}, {{< ui >}}Assertions{{< /ui >}}, {{< ui >}}Alert Conditions{{< /ui >}} y {{< ui >}}Monitor Settings{{< /ui >}}. + 2. Haga clic en {{< ui >}}+Create Test{{< /ui >}} para abrir la página {{< ui >}}Define Request{{< /ui >}}, donde puede revisar y editar las opciones de configuración prellenadas. Los campos presentados son idénticos a los disponibles al crear una prueba desde cero. + 3. Haga clic en {{< ui >}}Save Details{{< /ui >}} para enviar su prueba de API.

- {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video de la página de inicio de prueba de API de Synthetics con plantillas" video="true" >}} + {{< img src="getting_started/synthetics/synthetics_templates_api_video.mp4" alt="Video de la página de inicio de la prueba de API de Synthetics con plantillas" video="true" >}} - - **Construya una prueba desde cero**: + - **Cree una prueba desde cero**: - 1. Para construir una prueba desde cero, haga clic en la plantilla **+ Comenzar desde cero**, luego seleccione el tipo de `HTTP`solicitud y especifique la **URL** a consultar. - Los métodos disponibles son: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE` y `OPTIONS`. Se admiten tanto `http` como `https` URLs. + 1. Para crear una prueba desde cero, haga clic en la plantilla {{< ui >}}+ Start from scratch{{< /ui >}}, luego seleccione el tipo de solicitud `HTTP` y especifique la {{< ui >}}URL{{< /ui >}} a consultar. + Los métodos disponibles son: `GET`, `POST`, `PATCH`, `PUT`, `HEAD`, `DELETE` y `OPTIONS`. Se admiten tanto URLs `http` como `https`. -
Vea Opciones avanzadas para más opciones.
+
Consulte Opciones avanzadas para ver más opciones.
- 2. **Name** your HTTP test. + 2. {{< ui >}}Name{{< /ui >}} su prueba HTTP. - 3. Add Environment **Tags** as well as any other tag to your HTTP test. You can then use these tags to filter through your Synthetic tests on the [Synthetic Monitoring & Continuous Testing page][3]. + 3. Add Environment {{< ui >}}Tags{{< /ui >}} así como cualquier otra etiqueta para su prueba HTTP. Luego puede usar estas etiquetas para filtrar sus pruebas Synthetic en la [página de Synthetic Monitoring y Continuous Testing][3]. - 4. Click **Send** to try out the request configuration. A response preview is displayed on the right side of your screen.

+ 4. Click {{< ui >}}Send{{< /ui >}} para probar la configuración de la solicitud. Se muestra una vista previa de la respuesta en el lado derecho de su pantalla.

{{< img src="getting_started/synthetics/api-test-config-4.png" alt="Definir solicitud HTTP" style="width:90%;" >}} - 5. Click **Create Test** to submit your API test. + 5. Click {{< ui >}}Create Test{{< /ui >}} to submit your API test. ### Fragmentos {#snippets} @@ -78,43 +78,51 @@ Puede crear una prueba utilizando una de las siguientes opciones: {{< tabs >}} {{% tab "Opciones de solicitud" %}} - * **Versión HTTP**: Seleccione `HTTP/1.1 only`, `HTTP/2 only` o `HTTP/2 fallback to HTTP/1.1`. - * **Seguir redirecciones**: Seleccione para que su prueba HTTP siga hasta diez redirecciones al realizar la solicitud. - * **Ignorar error de certificado del servidor**: Seleccione para que su prueba HTTP continúe con la conexión incluso si hay errores al validar el certificado SSL. - * **Tiempo de espera**: Especifique la cantidad de tiempo en segundos antes de que la prueba exceda el tiempo límite. - * **Encabezados de solicitud**: Define encabezados para agregar a tu solicitud HTTP. También puedes anular los encabezados predeterminados (por ejemplo, el encabezado `user-agent`). - * **Cookies**: Define cookies para agregar a tu solicitud HTTP. Establece múltiples cookies utilizando el formato `=; =`. + * {{< ui >}}HTTP version{{< /ui >}}: Seleccione `HTTP/1.1 only`, `HTTP/2 only` o `HTTP/2 fallback to HTTP/1.1`. + + Para puntos finales protegidos por una CDN (como Akamai, CloudFront o Fastly), establezca la versión HTTP en `HTTP/2 only` o `HTTP/1.1 only` en lugar del valor predeterminado `HTTP/2 with fallback to HTTP/1.1`. La compatibilidad con la versión HTTP varía entre las sondas, y la configuración predeterminada puede causar [errores HTTP][1] intermitentes como: + - `MALFORMED_RESPONSE: Unable to parse HTTP response` + - `Session closed without receiving a SETTINGS frame` + - `Error HTTP2: Error performing HTTP/2 request` + * {{< ui >}}Follow redirects{{< /ui >}}: Seleccione para que su prueba HTTP siga hasta diez redirecciones al realizar la solicitud. + * {{< ui >}}Ignore server certificate error{{< /ui >}}: Seleccione para que su prueba HTTP continúe con la conexión incluso si hay errores al validar el certificado SSL. + * {{< ui >}}Timeout{{< /ui >}}: Especifique la cantidad de tiempo en segundos antes de que la prueba agote el tiempo de espera. + * {{< ui >}}Request headers{{< /ui >}}: Defina los encabezados que se agregarán a su solicitud HTTP. También puede anular los encabezados predeterminados (por ejemplo, el encabezado `user-agent`). + * {{< ui >}}Cookies{{< /ui >}}: Defina las cookies que se agregarán a su solicitud HTTP. Establezca varias cookies utilizando el formato `=; =`. + +[1]: /es/synthetics/api_tests/errors/#http-errors {{% /tab %}} {{% tab "Autenticación" %}} - * **Certificado de cliente**: Autentica a través de mTLS subiendo tu certificado de cliente (`.crt`) y la clave privada asociada (`.key`) en formato `PEM`. Puedes usar la biblioteca `openssl` para convertir tus certificados. Por ejemplo, convierte un certificado `PKCS12` a claves privadas y certificados en formato `PEM`. + * {{< ui >}}Client Certificate{{< /ui >}}: Autentíquese mediante mTLS cargando su certificado de cliente (`.crt`) y la clave privada asociada (`.key`) en formato `PEM`. Puede utilizar la biblioteca `openssl` para convertir sus certificados. Por ejemplo, convierta un certificado `PKCS12` a claves privadas y certificados con formato `PEM`. ``` openssl pkcs12 -in .p12 -out .key -nodes -nocerts openssl pkcs12 -in .p12 -out .cert -nokeys ``` - * **Autenticación básica HTTP**: Agrega credenciales de autenticación básica HTTP. - * **Autenticación Digest**: Agrega credenciales de autenticación Digest. - * **NTLM**: Agrega credenciales de autenticación NTLM. Admite tanto NTLMv2 como NTLMv1. - * **Firma AWS v4**: Ingresa tu ID de clave de acceso y clave de acceso secreta. Datadog genera la firma para tu solicitud. Esta opción utiliza la implementación básica de SigV4. Firmas específicas como Amazon S3 no son compatibles de forma predeterminada. - Para solicitudes de transferencia "Single Chunk" a los buckets de Amazon S3, agrega `x-amz-content-sha256` que contenga el cuerpo de la solicitud codificado en sha256 como un encabezado (para un cuerpo vacío: `x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`). - * **OAuth 2.0**: Elige entre otorgar credenciales de cliente o una contraseña de propietario de recurso e ingresa una URL de token de acceso. Dependiendo de tu selección, ingresa un ID de cliente y secreto, o un nombre de usuario y contraseña. Desde el menú desplegable, selecciona una opción para enviar el token de API como un encabezado de autenticación básica, o enviar las credenciales del cliente en el cuerpo. Opcionalmente, puedes proporcionar información adicional como la audiencia, el recurso y el contexto (así como el ID y secreto del cliente, si seleccionaste **Recurso de Propietario de Contraseña**). + * {{< ui >}}HTTP Basic Auth{{< /ui >}}: Agregue credenciales de autenticación básica HTTP. + * {{< ui >}}Digest Auth{{< /ui >}}: Agregue credenciales de autenticación Digest. + * {{< ui >}}NTLM{{< /ui >}}: Agregue credenciales de autenticación NTLM. Admite tanto NTLMv2 como NTLMv1. + * {{< ui >}}AWS Signature v4{{< /ui >}}: Ingrese su ID de clave de acceso y su clave de acceso secreta. Datadog genera la firma para su solicitud. Esta opción utiliza la implementación básica de SigV4. Las firmas específicas como Amazon S3 no son compatibles de forma predeterminada. + Para solicitudes de transferencia de "fragmento único" a buckets de Amazon S3, agregue `x-amz-content-sha256` que contenga el cuerpo de la solicitud codificado en sha256 como encabezado (para un cuerpo vacío: `x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`). + * {{< ui >}}OAuth 2.0{{< /ui >}}: Elija entre otorgar credenciales de cliente o una contraseña de propietario de recurso e ingrese una URL de token de acceso. Dependiendo de su selección, ingrese un ID de cliente y una contraseña, o un nombre de usuario y una contraseña. En el menú desplegable, seleccione una opción para enviar el token de API como un encabezado de autenticación básica o enviar las credenciales de cliente en el cuerpo. Opcionalmente, puede proporcionar información adicional como la audiencia, el recurso y el contexto (así como el ID de cliente y la contraseña, si seleccionó {{< ui >}}Resource Owner Password{{< /ui >}}). + * {{< ui >}}JWT{{< /ui >}}: Genere un token de portador JWT firmado para la autenticación. Seleccione un algoritmo de firma (`HS256`, `RS256` o `ES256`) y proporcione una clave de firma: ingrese un secreto de texto para `HS256`, o cargue una clave privada con formato PEM para `RS256` y `ES256`. Ambos aceptan `{{ GLOBAL_VARIABLE }}` references. Enter payload claims as a JSON object; claims can be strings, numbers, Booleans, arrays, or nested objects. The `iat` (issued at) and `exp` (expiration) claims are auto-added by default. If you include `iat` or `exp` in the payload JSON, those values take precedence over the auto-generated ones. Optionally, set the expiration window in seconds (default: `3600`), add custom JWT header fields such as `kid` or `x5t`, and customize the token prefix in the `Authorization` header (default: `Bearer`). {{% /tab %}} - {{% tab "Parámetros de Consulta" %}} + {{% tab "Parámetros de consulta" %}} - * **Codificar parámetros**: Agrega el nombre y valor de los parámetros de consulta que requieren codificación. + * {{< ui >}}Encode parameters{{< /ui >}}: Agregue el nombre y el valor de los parámetros de consulta que requieren codificación. {{% /tab %}} - {{% tab "Cuerpo de la Solicitud" %}} + {{% tab "Cuerpo de la solicitud" %}} - * **Tipo de cuerpo**: Seleccione el tipo de cuerpo de la solicitud (`application/json`, `application/octet-stream`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/html`, `text/plain`, `text/xml`, `GraphQL` o `None`) que desea agregar a su solicitud HTTP. - * **Cuerpo de la solicitud**: Agrega el contenido de tu cuerpo de solicitud HTTP. + * {{< ui >}}Body type{{< /ui >}}: Seleccione el tipo de cuerpo de la solicitud (`application/json`, `application/octet-stream`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/html`, `text/plain`, `text/xml`, `GraphQL` o `None`) que desea agregar a su solicitud HTTP. + * {{< ui >}}Request body{{< /ui >}}: Agregue el contenido del cuerpo de su solicitud HTTP. * El cuerpo de la solicitud está limitado a un tamaño máximo de 50 kilobytes para `application/json`, `application/x-www-form-urlencoded`, `text/html`, `text/plain`, `text/xml`, `GraphQL`. * El cuerpo de la solicitud está limitado a un archivo de 3 megabytes para `application/octet-stream`. * El cuerpo de la solicitud está limitado a tres archivos de 3 megabytes cada uno para `multipart/form-data`. @@ -122,24 +130,24 @@ Puede crear una prueba utilizando una de las siguientes opciones: {{% tab "Proxy" %}} - * **URL del proxy**: Especifique la URL del proxy por el que debe pasar la solicitud HTTP (`http://:@:`). - * **Encabezado del proxy**: Agregue encabezados para incluir en la solicitud HTTP al proxy. + * {{< ui >}}Proxy URL{{< /ui >}}: Especifique la URL del proxy a través del cual debe pasar la solicitud HTTP (`http://:@:`). + * {{< ui >}}Proxy header{{< /ui >}}: Agregue encabezados para incluir en la solicitud HTTP al proxy. {{% /tab %}} {{% tab "Privacidad" %}} - * **No guardar el cuerpo de la respuesta**: Seleccione esta opción para evitar que el cuerpo de la respuesta se guarde en tiempo de ejecución y para truncar el mensaje de error de las afirmaciones de JavaScript fallidas. Esto ayuda a garantizar que no se muestre información sensible en los resultados de su prueba, pero puede dificultar la solución de problemas de fallos. Para recomendaciones de seguridad completas, consulte [Seguridad de Datos de Monitoreo Sintético][1]. + * {{< ui >}}Do not save response body{{< /ui >}}: Seleccione esta opción para evitar que el cuerpo de la respuesta se guarde en tiempo de ejecución y para truncar el mensaje de error de las aserciones de JavaScript fallidas. Esto ayuda a garantizar que no se muestren datos confidenciales en los resultados de sus pruebas, pero puede dificultar la resolución de problemas de fallas. Para obtener recomendaciones de Security completas, consulte [Synthetic Monitoring Data Security][1]. [1]: /es/data_security/synthetics {{% /tab %}} - {{% tab "Javascript" %}} + {{% tab "JavaScript" %}} Defina variables para sus pruebas de API HTTP con JavaScript: -{{< img src="synthetics/api_tests/http_javascript.png" alt="Defina prueba de API HTTP con Javascript" style="width:90%;" >}} +{{< img src="synthetics/api_tests/http_javascript.png" alt="Definir prueba de API HTTP con JavaScript" style="width:90%;" >}}
Las capacidades de JavaScript no son compatibles con las pruebas de API en ubicaciones privadas de Windows.
@@ -147,61 +155,63 @@ Defina variables para sus pruebas de API HTTP con JavaScript: {{< /tabs >}} -### Define afirmaciones {#define-assertions} +### Defina aserciones {#define-assertions} -Las afirmaciones definen cuál es un resultado de prueba esperado. Después de hacer clic en **Probar URL**, se añaden afirmaciones básicas sobre `response time`, `status code` y `header` `content-type` basadas en la respuesta que se obtuvo. Debes definir al menos una afirmación para que tu prueba sea objeto de seguimiento. +Las aserciones definen cuál es el resultado esperado de una prueba. Después de hacer clic en {{< ui >}}Test URL{{< /ui >}}, se agregan aserciones básicas sobre `response time`, `status code` y `header` `content-type` según la respuesta obtenida. Debe definir al menos una aserción para que su prueba haga un seguimiento. -
El encabezado de afirmaciones, el cuerpo y las secciones de JavaScript son solo para definir afirmaciones. No se pueden usar para hacer solicitudes HTTP adicionales.
+
Las secciones de encabezado, cuerpo y JavaScript de las aserciones son solo para definir aserciones. No se pueden utilizar para realizar solicitudes HTTP adicionales.
{{< tabs >}} -{{% tab "Afirmaciones de respuesta" %}} +{{% tab "Aserciones de respuesta" %}} | Tipo | Operador | Tipo de valor | |---------------|--------------------------------------------------------------------------------------------------------|----------------------------------------------------------------| -| cuerpo | `contains`, `does not contain`, `is`, `is not`,
`matches`, `does not match`,
[`jsonpath`][4], [`xpath`][5] | _Cadena_
_[Regex][6]_ | -| encabezado | `contains`, `does not contain`, `is`, `is not`,
`matches`, `does not match` | _Cadena_
_[Regex][6]_ | -| tiempo de respuesta | `is less than` | _Entero (ms)_ | -| código de estado | `is`, `is not`,
`matches`, `does not match` | _Entero_
_[Regex][6]_ | +| body | `contains`, `does not contain`, `is`, `is not`,
`matches`, `does not match`,
[`jsonpath`][4], [`xpath`][5],
[`jsonschema`][7] | _String_
_[Regex][6]_
_String_, _[Regex][6]_
_String_ | +| body hash | `md5`, `sha1`, `sha256` | _String_ | +| header | `contains`, `does not contain`, `is`, `is not`,
`matches`, `does not match`,
`does not exist`,
`is less than`, `is less than or equal`, `is more than`, `is more than or equal` | _String_
_[Regex][6]_
_None_
_Integer_ | +| response time | `is less than` | _Integer (ms)_ | +| status code | `is`, `is not`,
`matches`, `does not match` | _Integer_
_[Regex][6]_ | -Las pruebas HTTP pueden descomprimir cuerpos con los siguientes `content-encoding` encabezados: `br`, `deflate`, `gzip` y `identity`. +Las pruebas HTTP pueden descomprimir cuerpos con los siguientes encabezados `content-encoding`: `br`, `deflate`, `gzip` y `identity`. -Puedes crear hasta 20 afirmaciones por prueba de API haciendo clic en **Nueva Afirmación** o haciendo clic directamente en la vista previa de la respuesta: +Puede crear hasta 20 aserciones por prueba de API haciendo clic en {{< ui >}}New Assertion{{< /ui >}} o haciendo clic directamente en la vista previa de la respuesta: -{{< img src="synthetics/api_tests/assertions_http.png" alt="Define afirmaciones para que tu prueba HTTP tenga éxito o falle en" style="width:90%;" >}} +{{< img src="synthetics/api_tests/assertions_http.png" alt="Defina aserciones para que su prueba HTTP tenga éxito o falle" style="width:90%;" >}} -Para realizar `OR` lógica en una afirmación, usa el `matches regex` comparador para definir una expresión regular con múltiples valores esperados como `(200|302)`. Por ejemplo, puedes querer que tu prueba HTTP tenga éxito cuando un servidor deba responder con un código de estado `200` o `302`. La afirmación `status code` tiene éxito si el código de estado es 200 o 302. También puedes añadir lógica `OR` en una afirmación `body` o `header` con el comparador `matches regex`. +Para realizar lógica `OR` en una aserción, utilice el comparador `matches regex` para definir una expresión regular con múltiples valores esperados como `(200|302)`. Por ejemplo, es posible que desee que su prueba HTTP tenga éxito cuando un servidor deba responder con un código de estado `200` o `302`. La aserción `status code` tiene éxito si el código de estado es 200 o 302. También puede agregar lógica `OR` en una aserción `body` o `header` con el comparador `matches regex`. -Si una prueba no contiene una afirmación sobre el cuerpo de la respuesta, la carga del cuerpo se descarta y se devuelve un tiempo de respuesta asociado para la solicitud dentro del límite de tiempo establecido por el Synthetics Worker. +Si una prueba no contiene una aserción sobre el cuerpo de la respuesta, la carga útil del cuerpo se descarta y devuelve un tiempo de respuesta asociado para la solicitud dentro del límite de tiempo de espera establecido por el Synthetics Worker. -El cuerpo de la respuesta solo se devuelve si ha agregado afirmaciones sobre su contenido y estas afirmaciones han fallado. Si una prueba contiene una afirmación sobre el cuerpo de la respuesta y tiene éxito, la carga del cuerpo se descarta y solo se muestra un fragmento de los primeros 50 caracteres del cuerpo de la respuesta. +El cuerpo de la respuesta solo se devuelve si ha agregado aserciones sobre su contenido y estas aserciones han fallado. Si una prueba contiene una aserción en el cuerpo de la respuesta y tiene éxito, la carga útil del cuerpo se descarta y solo se muestra un fragmento de los primeros 50 caracteres del cuerpo de la respuesta. -Si una prueba contiene una afirmación sobre el cuerpo de la respuesta y se alcanza el límite de tiempo, aparece un error `Assertions on the body/response cannot be run beyond this limit`. +Si una prueba contiene una aserción en el cuerpo de la respuesta y se alcanza el límite de tiempo de espera, aparece un error `Assertions on the body/response cannot be run beyond this limit`. [4]: https://restfulapi.net/json-jsonpath/ [5]: https://www.w3schools.com/xml/xpath_syntax.asp [6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions +[7]: https://json-schema.org/ {{% /tab %}} {{% tab "JavaScript" %}} -Utilice afirmaciones de JavaScript cuando las afirmaciones de respuesta estándar no satisfagan sus necesidades de validación. Synthetic Monitoring utiliza la [biblioteca de afirmaciones Chai][20], que proporciona `dd.expect()`, `dd.should` y `dd.assert()` para estilos de afirmación flexibles. +Use aserciones de JavaScript cuando las aserciones de respuesta estándar no satisfagan sus necesidades de validación. Synthetic Monitoring utiliza la [biblioteca de aserciones Chai][20], que proporciona `dd.expect()`, `dd.should` y `dd.assert()` para estilos de aserción flexibles. -Al trabajar con respuestas JSON, utilice `JSON.parse(dd.response.body)` para analizar el cuerpo de la respuesta antes de acceder a sus propiedades. Esto es necesario para todos los métodos de afirmación (`dd.assert()`, `dd.expect()` y `dd.should`) al validar datos JSON. +Al trabajar con respuestas JSON, use `JSON.parse(dd.response.body)` para analizar el cuerpo de la respuesta antes de acceder a sus propiedades. Esto es necesario para todos los métodos de aserción (`dd.assert()`, `dd.expect()` y `dd.should`) al validar datos JSON. -{{< img src="synthetics/api_tests/JS_assertion.png" alt="Afirmación de JavaScript para prueba de API HTTP" style="width:90%;" >}} +{{< img src="synthetics/api_tests/JS_assertion.png" alt="Aserción de JavaScript para prueba de API HTTP" style="width:90%;" >}}
    -
  • Las capacidades de JavaScript no son compatibles con pruebas de API en ubicaciones privadas de Windows.
  • -
  • Si el mensaje de error de una afirmación de JavaScript fallida puede incluir datos sensibles, bajo Opciones Avanzadas > Privacidad, habilite No guardar el cuerpo de la respuesta. Esto trunca el mensaje de error de la afirmación.
  • +
  • Las capacidades de JavaScript no son compatibles para pruebas de API en ubicaciones privadas de Windows.
  • +
  • Si el mensaje de error de una aserción de JavaScript fallida puede incluir datos confidenciales, en {{< ui >}}Advanced Options{{< /ui >}} > {{< ui >}}Privacy{{< /ui >}}, habilite {{< ui >}}Do not save response body{{< /ui >}}. Esto trunca el mensaje de error de la aserción.
-#### Usando dd.assert() {#using-ddassert} +#### Uso de dd.assert() {#using-ddassert} -Utilice `dd.assert()` para la sintaxis tradicional de afirmaciones: +Use `dd.assert()` para la sintaxis de aserción tradicional: -Por ejemplo, para afirmar que un campo `status.code` es uno de varios valores permitidos: +Por ejemplo, para probar que un campo `status.code` sea uno de varios valores permitidos: {{< code-block lang="javascript" >}} const response = JSON.parse(dd.response.body); @@ -220,19 +230,19 @@ Respuesta de ejemplo: } ``` -Esta afirmación: +Esta aserción: - Analiza el cuerpo de la respuesta JSON -- Verifica que `status.code` esté incluido en el arreglo de valores permitidos (200, 210, 320 o 330) +- Comprueba que `status.code` esté incluido en la matriz de valores permitidos (200, 210, 320 o 330) -La prueba **pasa** porque `status.code` es `200`, lo cual está incluido en el arreglo de valores permitidos. +La prueba **pasa** porque `status.code` es `200`, lo cual está incluido en la matriz de valores permitidos. -Para más información sobre `assert.include()`, consulta la [documentación de Chai assert.include()][21]. +Para obtener más información sobre `assert.include()`, consulte la [documentación de Chai assert.include()][21]. #### Usando dd.expect() {#using-ddexpect} -Utilice `dd.expect()` para afirmaciones con validación de propiedades anidadas. +Use `dd.expect()` para aserciones con validación de propiedades anidadas. -Por ejemplo, para afirmar que un campo `status.indicator` coincida con uno de los varios valores esperados: +Por ejemplo, para probar que un campo `status.indicator` coincida con uno de varios valores esperados: {{< code-block lang="javascript" >}} const response = JSON.parse(dd.response.body); @@ -252,22 +262,22 @@ Respuesta de ejemplo: } } ``` -Esta afirmación: +Esta aserción: - Analiza el cuerpo de la respuesta JSON - Valida que la propiedad anidada `status.indicator` exista -- Verifica que el valor coincida con el patrón regex (uno de: `major`, `critical`, `minor` o `none`) +- Comprueba que el valor coincida con el patrón regex (uno de: `major`, `critical`, `minor` o `none`) Con el regex `/^(major|critical|minor|none)$/`, la prueba **pasa** porque `status.indicator` es `"none"`, lo cual coincide con el patrón. Con el regex `/^(major|critical|minor)$/`, la prueba **falla** porque `"none"` no está incluido en los valores permitidos. -Para más información sobre `expect()`, consulta la [documentación de Chai expect()][22]. +Para obtener más información sobre `expect()`, consulte la [documentación de Chai expect()][22]. #### Usando dd.should {#using-ddshould} -Usa `dd.should` para escribir afirmaciones con sintaxis de lenguaje natural: +Use `dd.should` para escribir aserciones con sintaxis de lenguaje natural: -Por ejemplo, para afirmar que un campo `status.indicator` existe y es igual a un valor específico: +Por ejemplo, para probar que un campo `status.indicator` exista y sea igual a un valor específico: {{< code-block lang="javascript" >}} const response = JSON.parse(dd.response.body); @@ -286,15 +296,15 @@ Respuesta de ejemplo: } ``` -Esta afirmación: +Esta aserción: - Analiza el cuerpo de la respuesta JSON - Verifica que la propiedad `status` exista - Extrae el valor del indicador en una variable -- Verifica que `status.indicator` sea igual a `"none"` +- Comprueba que `status.indicator` sea igual a `"none"` La prueba **pasa** porque `status` existe y `status.indicator` es `"none"`. -Para más información sobre `should()`, consulta la [documentación de Chai should()][23]. +Para obtener más información sobre `should()`, consulte la [documentación de Chai should()][23]. [20]: https://www.chaijs.com/api/ [21]: https://www.chaijs.com/api/assert/#method_include @@ -306,7 +316,7 @@ Para más información sobre `should()`, consulta la [documentación de Chai sho ### Seleccione ubicaciones {#select-locations} -Seleccione las **Ubicaciones** desde las cuales ejecutar su prueba HTTP. Las pruebas HTTP pueden ejecutarse desde ubicaciones gestionadas y [privadas][1] dependiendo de su preferencia por ejecutar la prueba desde fuera o dentro de su red. +Seleccione la {{< ui >}}Locations{{< /ui >}} desde la cual ejecutar su prueba HTTP. Las pruebas HTTP pueden ejecutarse desde [ubicaciones privadas][1] y administradas, según su preferencia para ejecutar la prueba desde fuera o dentro de su red. {{% managed-locations %}} @@ -314,9 +324,9 @@ Seleccione las **Ubicaciones** desde las cuales ejecutar su prueba HTTP. Las pru Las pruebas HTTP pueden ejecutarse: -* **Según un horario** para asegurar que sus puntos de conexión más importantes siempre sean accesibles para sus usuarios. Seleccione la frecuencia con la que desea que Datadog ejecute su prueba HTTP. -* [**Dentro de sus pipelines de CI/CD**][2] para comenzar a enviar sin temer que un código defectuoso pueda afectar la experiencia de sus clientes. -* **A demanda** para ejecutar sus pruebas cuando tenga más sentido para su equipo. +* **Según un horario** para garantizar que sus puntos de conexión más importantes estén siempre accesibles para sus usuarios. Seleccione la frecuencia con la que desea que Datadog ejecute su prueba HTTP. +* [**Dentro de sus CI/CD pipelines**][2] para comenzar a realizar entregas sin temor a que un código defectuoso pueda afectar la experiencia de sus usuarios. +* **Bajo demanda** para ejecutar sus pruebas cuando tenga más sentido para su equipo. {{% synthetics-alerting-monitoring %}} @@ -324,44 +334,60 @@ Las pruebas HTTP pueden ejecutarse: ## Un clic {#one-click} -La creación de pruebas de API sugiere puntos de conexión del [Catálogo][17] y pruebas de API existentes para completar su formulario de prueba con opciones relevantes. -Utilice fuentes de datos existentes de Datadog, como trazas de APM, descubrimiento de puntos de conexión del Catálogo y pruebas Synthetic similares existentes creadas por usuarios. +La creación de pruebas de API sugiere puntos de conexión del [Catálogo][17] y pruebas de API existentes para rellenar previamente su formulario de prueba con opciones relevantes. +Utilice fuentes de datos de Datadog existentes, como trazas de APM, detección de puntos de conexión del Catálogo y pruebas Synthetic similares existentes creadas por los usuarios. -Comience a escribir en la entrada de **URL** de la prueba de API para obtener sugerencias de puntos de conexión o pruebas similares en Synthetic Monitoring: +Comience a escribir en la entrada {{< ui >}}URL{{< /ui >}} de la prueba de API para obtener sugerencias de puntos de conexión o pruebas similares en Synthetic Monitoring: - {{< img src="synthetics/api_tests/api-one-click.png" alt="Prueba de API HTTP mostrando una búsqueda GET para una prueba de API existente" style="width:90%;" >}} + {{< img src="synthetics/api_tests/api-one-click.png" alt="Prueba de API HTTP que muestra una búsqueda GET de una prueba de API existente" style="width:90%;" >}} -Luego, seleccione una sugerencia para completar la configuración de su prueba (opciones de solicitud y encabezados, autenticación y variables): +Luego, seleccione una sugerencia para rellenar previamente la configuración de su prueba (opciones y encabezados de solicitud, autenticación y variables): - {{< img src="synthetics/api_tests/api-test-monitor-search.png" alt="Seleccione" style="width:90%;" >}} + {{< img src="synthetics/api_tests/api-test-monitor-search.png" alt="Select" style="width:90%;" >}} {{% synthetics-variables %}} -### Utilice variables {#use-variables} +### Usar variables {#use-variables} -Puede usar las [variables globales definidas en la página **Settings**][11] en la URL, opciones avanzadas y afirmaciones de sus pruebas HTTP. +Puede usar las [variables globales definidas en la página {{< ui >}}Settings{{< /ui >}}][11] en la URL, las opciones avanzadas y las aserciones de sus pruebas HTTP. Para mostrar su lista de variables, escriba `{{` en el campo deseado: -{{< img src="synthetics/api_tests/http_use_variable.mp4" alt="Usando variables en una prueba HTTP" video="true" width="100%" >}} +{{< img src="synthetics/api_tests/http_use_variable.mp4" alt="Uso de variables en una prueba HTTP" video="true" width="100%" >}} + +## Falla de prueba {#test-failure} + +Una prueba se considera `FAILED` si no cumple con una o más aserciones o si la solicitud falló prematuramente. En algunos casos, la prueba puede fallar sin probar las aserciones contra el punto de conexión. + +{{< img src="synthetics/api_tests/api_test_summary_updated.png" alt="Página de detalles de la prueba de API HTTP que muestra la pestaña Actividad con tiempo de actividad global, una línea de tiempo de alertas y una lista de las ejecuciones de prueba recientes en estado de alerta" style="width:100%;">}} + +### Resumen de la línea de tiempo {#timeline-summary} + +El panel {{< ui >}}Summary{{< /ui >}} identifica problemas únicos que causan fallas en las ejecuciones de prueba en el período de tiempo seleccionado. Para cada problema, el panel muestra: + +- {{< ui >}}First seen{{< /ui >}}: Cuándo apareció el problema por primera vez en las ejecuciones de prueba. +- {{< ui >}}Last seen{{< /ui >}}: Cuándo apareció el problema más recientemente en las ejecuciones de prueba. +- {{< ui >}}Classification{{< /ui >}}: Si el problema es un {{< ui >}}True failure{{< /ui >}} (un problema real con su aplicación) o un {{< ui >}}Test Misconfiguration{{< /ui >}} (un problema con la configuración de la prueba), según el resumen de fallas de IA. +- {{< ui >}}Description{{< /ui >}}: Una breve descripción del error. +- {{< ui >}}Latest alerts{{< /ui >}}: Una lista de las alertas más recientes relacionadas con el problema. -## Fallo de prueba {#test-failure} +Para obtener una lista completa de los códigos de error HTTP y SSL, consulte [API Testing Errors][12]. -Una prueba se considera `FAILED` si no satisface una o más afirmaciones o si la solicitud falló prematuramente. En algunos casos, la prueba puede fallar sin probar las afirmaciones contra el punto de conexión. +## Inicie una Bits Investigation {#launch-a-bits-investigation} -Para una lista completa de códigos de error HTTP y SSL, consulta [Errores de pruebas de API][12]. +Para identificar la causa raíz de una prueba HTTP sintética fallida, inicie una [Bits Investigation][18]. Bits Investigation analiza los resultados de las pruebas, las trazas, los logs y las métricas para determinar la causa raíz y marcar si el error es una regresión o una configuración incorrecta. ## Permisos {#permissions} -Por defecto, solo los usuarios con los [Datadog Admin y Datadog Standard roles][13] pueden crear, editar y eliminar pruebas HTTP Synthetic. Para obtener acceso para crear, editar y eliminar pruebas HTTP Synthetic, actualice su rol de usuario a uno de esos dos [default roles][13]. +De forma predeterminada, solo los usuarios con los [Datadog Admin y Datadog Standard roles][13] pueden crear, editar y eliminar pruebas HTTP sintéticas. Para obtener acceso para crear, editar y eliminar pruebas HTTP sintéticas, actualice su usuario a uno de esos dos [default roles][13]. -Si está usando la [función de rol personalizado][14], agregue su usuario a cualquiera de los roles personalizados que incluyan los permisos `synthetics_read` y `synthetics_write`. +Si está utilizando la [custom role feature][14], agregue su usuario a cualquier custom role que incluya los permisos `synthetics_read` y `synthetics_write`. ### Restringir acceso {#restrict-access} {{% synthetics_grace_permissions %}} -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -378,4 +404,5 @@ Si está usando la [función de rol personalizado][14], agregue su usuario a cua [14]: /es/account_management/rbac#custom-roles [15]: /es/account_management/rbac/#create-a-custom-role [16]: /es/synthetics/api_tests/errors/#http-errors -[17]: /es/api_catalog \ No newline at end of file +[17]: /es/api_catalog +[18]: /es/bits_ai/bits_investigation/investigate_issues/#from-the-synthetic-test-details-page \ No newline at end of file diff --git a/hugo/content/es/tests/test_parallelization/configuration.md b/hugo/content/es/tests/test_parallelization/configuration.md new file mode 100644 index 00000000000..f36b88e6ea2 --- /dev/null +++ b/hugo/content/es/tests/test_parallelization/configuration.md @@ -0,0 +1,261 @@ +--- +description: Configure las variables de entorno de paralelización de prueba, la selección + de paralelismo, la configuración de los trabajadores y los artefactos del plan. +further_reading: +- link: /tests/test_parallelization/setup/ + tag: Documentación + text: Configure la paralelización de prueba +- link: /tests/test_parallelization/troubleshooting/ + tag: Documentación + text: Solución de problemas de paralelización de prueba +- link: /tests/test_parallelization/best_practices/ + tag: Documentación + text: Prácticas recomendadas para la paralelización de prueba +title: Configure la paralelización de prueba +--- +## Variables de entorno {#environment-variables} + +La mayoría de los ajustes de `ddtest` se pueden pasar como un indicador de CLI o como una variable de entorno. Los indicadores de CLI tienen prioridad sobre las variables de entorno. + +`DD_TEST_OPTIMIZATION_RUNNER_PLATFORM` +: Lenguaje de programación.
+**Indicador de CLI:** `--platform`
+**Predeterminado:** `ruby`
+**Valores admitidos:** `ruby`, `python`, `javascript` + +`DD_TEST_OPTIMIZATION_RUNNER_FRAMEWORK` +: Framework de prueba.
+**Indicador de CLI:** `--framework`
+**Predeterminado:** `rspec`
+**Valores admitidos:** `rspec`, `minitest`, `pytest`, `jest` + +`DD_TEST_OPTIMIZATION_RUNNER_COMMAND` +: Reemplaza el comando de prueba predeterminado. `ddtest` añade los archivos de prueba seleccionados y los indicadores específicos del marco al comando. Compatible con Ruby, JavaScript y Python. El soporte para Python requiere ddtest 1.7.0 o posterior. Para versiones de ddtest anteriores a 1.7.0 con pytest, el comando no se puede cambiar. Pase indicadores adicionales con `PYTEST_ADDOPTS`. Para obtener más información, consulte [Comandos de prueba personalizados](#custom-test-commands).
+**Indicador de CLI:** `--command`
+**Predeterminado:** Vacío
+**Ejemplo:** `bundle exec rspec --profile`, `pnpm jest --runInBand`, `pytest` + +`DD_TEST_OPTIMIZATION_RUNNER_MIN_PARALLELISM` +: Cantidad mínima de nodos o trabajadores de CI que `ddtest` considera al planificar.
+**Indicador de CLI:** `--min-parallelism`
+**Predeterminado:** Cantidad de CPU físicas
+**Ejemplo:** `1` + +`DD_TEST_OPTIMIZATION_RUNNER_MAX_PARALLELISM` +: Cantidad máxima de nodos o trabajadores de CI que `ddtest` considera al planificar.
+**Indicador de CLI:** `--max-parallelism`
+**Predeterminado:** Cantidad de CPU físicas
+**Ejemplo:** `8` + +`DD_TEST_OPTIMIZATION_RUNNER_CI_JOB_OVERHEAD` +: Sobrecarga estimada de iniciar un nodo de CI adicional. El planificador `ddtest` agrega otro nodo de CI solo si ese nodo reduce el tiempo de reloj de pared al menos en este valor.
Consulte [Selección de paralelismo](#parallelism-selection) para obtener más información.
+**Indicador de CLI:** `--ci-job-overhead`
+**Predeterminado:** `25s`
+**Ejemplo:** `25s`, `45s`, `1m`, `1500ms`, `0s` + +`DD_TEST_OPTIMIZATION_RUNNER_TARGET_TIME` +: Tiempo de ejecución objetivo para la división seleccionada. `ddtest` considera primero las divisiones en o por debajo de este tiempo de ejecución. Si ninguna división puede cumplir con el objetivo dentro del rango de paralelismo configurado, `ddtest` selecciona la división con el tiempo de ejecución esperado más bajo. Consulte [Selección de paralelismo](#parallelism-selection) para obtener más información.
+**Indicador de CLI:** `--target-time`
+**Predeterminado:** `0s`
+**Ejemplo:** `10m`, `300s`, `1500ms`, `0s` + +`DD_TEST_OPTIMIZATION_RUNNER_CI_NODE` +: Ejecuta solo los archivos asignados al nodo de CI `N`, donde `N` tiene un índice basado en cero.
+**Indicador de CLI:** `--ci-node`
+**Predeterminado:** `-1`
+**Ejemplo:** `0` + +`DD_TEST_OPTIMIZATION_RUNNER_CI_NODE_WORKERS` +: Número de trabajadores que se iniciarán en este nodo de CI. Use un número entero positivo o `ncpu` para usar todas las CPU físicas disponibles.
+**Indicador de CLI:** `--ci-node-workers`
+**Predeterminado:** `1`
+**Ejemplo:** `2`, `ncpu` + +`DD_TEST_OPTIMIZATION_RUNNER_WORKER_ENV` +: Establece variables de entorno para cada proceso de trabajador. Use `{{nodeIndex}}` and `{{workerIndex}}` placeholders to give each worker a unique value. For more information, see [Worker environment variables](#worker-environment-variables).
+**CLI flag:** `--worker-env`
+**Default:** Empty
+**Example:** `DB_NAME=testdb{{nodeIndex}}_{{workerIndex}};FIXTURE=fixture{{nodeIndex}}` + +`DD_TEST_OPTIMIZATION_RUNNER_TESTS_LOCATION` +: Patrón global utilizado para descubrir archivos de prueba. El valor predeterminado es `spec/**/*_spec.rb` para RSpec, `test/**/*_test.rb` para Minitest, la configuración de pytest (`testpaths` y `python_files`) o `**/{test_*,*_test}.py` para pytest, y la configuración de Jest o la coincidencia de pruebas predeterminada de Jest.
**Indicador de CLI:**`--tests-location`
**Alias:**`KNAPSACK_PRO_TEST_FILE_PATTERN`
**Predeterminado:**Predeterminado del framework
**Ejemplo:**`custom/spec/**/*_spec.rb`, `tests/**/*_test.py`, `packages/**/__tests__/**/*.test.ts` + +`DD_TEST_OPTIMIZATION_RUNNER_TESTS_EXCLUDE_PATTERN` +: Patrón glob utilizado para excluir archivos de prueba de la detección.
+**Indicador de CLI:** `--tests-exclude-pattern`
+**Alias:** `KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN`
+**Predeterminado:** Vacío
+**Ejemplo:** `spec/system/**/*_spec.rb` + +`DD_TEST_OPTIMIZATION_RUNNER_TEST_DISCOVERY_CACHE` +: Ruta a un archivo restaurado de caché de descubrimiento de pruebas. `ddtest` lo importa antes de planificar y actualiza la caché de detección interna después de una detección completa exitosa.
+**Indicador de CLI:** `--test-discovery-cache`
+**Predeterminado:** Vacío
+**Ejemplo:** `.ddtest-cache/tests-discovery.json` + +`DD_TESTOPTIMIZATION_TIA_TEST_SKIPPING_MODE` +: Controla si el salto de Test Impact Analysis utiliza granularidad a nivel de prueba o a nivel de suite para Ruby. Los valores no válidos recurren a `test`.
+**Indicador de CLI:** `--test-skipping-mode`
+**Predeterminado:** `test`
+**Valores admitidos:** `test`, `suite` + +`DD_TEST_OPTIMIZATION_RUNNER_FORCE_FULL_TEST_DISCOVERY` +: Fuerza el descubrimiento completo de pruebas cuando el framework lo admite, incluso en el modo de salto a nivel de suite.
+**Indicador de CLI:** `--force-full-test-discovery`
+**Predeterminado:** `false`
+**Valores admitidos:** `true`, `false` + +`DD_TEST_OPTIMIZATION_RUNNER_STRICT_DISCOVERY` +: Falla la planificación cuando el descubrimiento completo de pruebas genera un error. Si el descubrimiento completo se cancela (por ejemplo, por un tiempo de espera), `ddtest` aún recurre al descubrimiento rápido de archivos de prueba en lugar de fallar.
+**Indicador de CLI:** `--strict-discovery`
+**Predeterminado:** `false`
+**Ejemplo:** `true` + +`DD_TEST_OPTIMIZATION_RUNNER_RUNTIME_TAGS` +: Cadena JSON que anula las etiquetas de tiempo de ejecución utilizadas para obtener pruebas que se pueden omitir. Use esto cuando `ddtest` se ejecute fuera del entorno de CI utilizado para calcular las pruebas que se pueden omitir.
+**Indicador de CLI:** `--runtime-tags`
+**Alias:** `DD_TEST_OPTIMIZATION_RUNTIME_TAGS`
+**Predeterminado:** Vacío
+**Ejemplo:** `{"os.platform":"linux","os.version":"7.8.9","runtime.name":"ruby","runtime.version":"3.3.0"}` + +`DD_TEST_OPTIMIZATION_RUNNER_REPORT_ENABLED` +: Controla si `ddtest` imprime informes legibles por humanos después de la ejecución del comando. Esta configuración solo está disponible como variable de entorno.
+**Indicador de CLI:** Ninguno
+**Predeterminado:** `true`
+**Ejemplo:** `false` + +## Selección de paralelismo {#parallelism-selection} + +`ddtest plan` estima cuánto tiempo toma cada archivo de prueba ejecutable, luego evalúa cada valor de paralelismo entre `--min-parallelism` y `--max-parallelism`. + +En el modo de nodo CI, este valor es el recuento de nodos CI. En un solo nodo CI, este valor es el recuento de trabajadores. + +Las estimaciones de duración provienen de los tiempos p50 del conjunto de pruebas de Datadog cuando están disponibles y, de lo contrario, recurren a los pesos de descubrimiento local. Cada recuento de candidatos se califica como el tiempo esperado del trabajador más lento más el recuento de nodos multiplicado por `--ci-job-overhead`. + +Cuando las puntuaciones empatan, `ddtest` prefiere menos nodos o trabajadores de CI, luego un tiempo de reloj de pared esperado más bajo, y luego un menor desequilibrio entre los trabajadores. + +`ddtest` utiliza la configuración `--ci-job-overhead` para evitar seleccionar siempre el número máximo de nodos de CI. Con el valor predeterminado de `25s`, `ddtest` agrega otro nodo de CI solo cuando se espera que ese nodo ahorre al menos 25 segundos de tiempo de reloj de pared. + +Aumente `--ci-job-overhead` para usar menos nodos de CI. Disminúyalo para preferir un tiempo de reloj de pared más rápido. Utilice valores de duración como `25s`, `1m` o `1500ms`. Establezca `0s` para distribuir siempre la ejecución de pruebas en `--max-parallelism` nodos. + +Establezca `--target-time` para hacer que `ddtest` evalúe primero las divisiones en o por debajo de ese objetivo. Utilice valores de duración como `10m`, `300s` o `1500ms`. El valor predeterminado, `0s`, deshabilita el objetivo. + +Si ninguna división puede cumplir con el objetivo, `ddtest` registra una advertencia. Selecciona la división con el menor tiempo de reloj de pared esperado, ignorando la sobrecarga del trabajo de CI. + +## Comandos de prueba personalizados{#custom-test-commands} + +Para marcos de trabajo de Ruby y Jest, utilice `--command` para anular el comando de prueba predeterminado: + +{{< code-block lang="bash" >}} +bin/ddtest run --platform ruby --framework rspec --command "bin/integration-tests" +{{< /code-block >}} + +Al usar `--command`, no incluya archivos de prueba en el comando. `ddtest` añade archivos de prueba y flags específicos del framework al comando. + +No incluya el separador `--` en `--command`. Si el comando contiene `--`, `ddtest` emite una advertencia y elimina el separador y todo lo que le sigue. + +Para pytest, `ddtest` ejecuta `python -m pytest ` de forma predeterminada. Para versiones 1.7.0 y posteriores, configure `--command` para anular el comando base. Por ejemplo, `--command pytest` ejecuta el script de consola `pytest` en lugar de `python -m pytest`. `ddtest` ejecuta ` ` y no añade `-m pytest`. Para pasar flags adicionales de pytest sin cambiar el comando base, use `PYTEST_ADDOPTS`. `ddtest` añade `--ddtrace` a `PYTEST_ADDOPTS` automáticamente para que el plugin de pytest `ddtrace` se cargue sin cambiar su configuración de pytest. + +Para Jest, `ddtest` antepone `-r dd-trace/ci/init` a `NODE_OPTIONS` para los procesos de trabajo a menos que ya esté presente, por lo que el paquete `dd-trace` debe estar instalado en el proyecto donde se ejecuta `ddtest`. + +## Detección de prueba de pytest {#pytest-test-discovery} + +Para pytest, `ddtest` detecta archivos de prueba usando esta prioridad: + +1. `--tests-location` cuando está configurado. +2. Configuración de Pytest desde `pytest.ini`, `pyproject.toml`, `tox.ini` o `setup.cfg`, usando `testpaths` y `python_files`. +3. El patrón integrado `**/{test_*,*_test}.py`. + +Pytest no tiene un equivalente al flag de patrón de RSpec, por lo que `ddtest` resuelve el patrón a rutas de archivo explícitas antes de invocar el comando pytest configurado. El valor predeterminado es `python -m pytest`. Para versiones 1.7.0 y posteriores, `--command` lo anula. + +## Detección e instrumentación de prueba de Jest {#jest-test-discovery-and-instrumentation} + +Para Jest, `ddtest` detecta archivos de prueba con el comando `--listTests` propio de Jest. Utiliza esta prioridad: + +1. `--command` cuando se establece, con `--listTests` añadido. +2. El ejecutable local `node_modules/.bin/jest` cuando está presente. +3. `npx jest`. + +Jest utiliza su propia configuración y coincidencia de prueba predeterminada para `--listTests`. Cuando `--tests-location` está establecido, `ddtest` filtra la lista devuelta por Jest después de la detección. No pasa `--tests-location` como `--testMatch` de Jest. + +El soporte de Jest utiliza el Test Impact Analysis a nivel de suite. `ddtest` funciona con archivos y suites de prueba, no con pruebas individuales de Jest, y ejecuta los archivos seleccionados con `--runTestsByPath`. + +Durante la ejecución, `ddtest` antepone `-r dd-trace/ci/init` a `NODE_OPTIONS` para los procesos de trabajo, a menos que `NODE_OPTIONS` ya cargue `dd-trace/ci/init`. + +## Variables de entorno del trabajador {#worker-environment-variables} + +Utilice `--worker-env` para establecer variables de entorno para cada trabajador. El valor admite los marcadores de posición `{{nodeIndex}}` and `{{workerIndex}}` marcadores de posición. + +`{{nodeIndex}}` +: El índice del nodo de CI de `--ci-node` or `DD_TEST_OPTIMIZATION_RUNNER_CI_NODE`. In single-node runs, the value is `0`. + +`{{workerIndex}}` +: El índice del proceso de worker dentro del nodo de CI actual, comenzando en `0`. + +El formato es `ENV=value`. Separe los valores múltiples con `;`. + +Por ejemplo, asigne a cada trabajador su propia base de datos de pruebas: + +{{< code-block lang="bash" >}} +bin/ddtest run \ + --platform ruby \ + --framework rspec \ + --worker-env "DB_NAME=testdb{{nodeIndex}}_{{workerIndex}}" +{{< /code-block >}} + +`ddtest` establece automáticamente `DD_TEST_SESSION_NAME` para cada trabajador en `-node--worker-` cuando la variable no está establecida. Si establece `DD_TEST_SESSION_NAME`, `ddtest` lo conserva y expande los mismos marcadores de posición antes de iniciar cada trabajador. + +## Estabilizar etiquetas de tiempo de ejecución {#stabilize-runtime-tags} + +Las pruebas omitibles del Análisis de Impacto de Pruebas están limitadas por etiquetas de tiempo de ejecución como SO, arquitectura y versión de Ruby. Si `ddtest` informa a menudo que se omiten 0 pruebas, verifique si las etiquetas de tiempo de ejecución varían entre los ejecutores de CI. Por ejemplo, los ejecutores de AWS pueden informar diferentes valores de `os.version` entre trabajos. + +Para hacer que la coincidencia sea estable, establezca etiquetas de tiempo de ejecución fijas en el entorno utilizado tanto por `ddtest` como por los procesos de los trabajadores: + +{{< code-block lang="bash" >}} +export DD_TEST_OPTIMIZATION_RUNTIME_TAGS='{"os.architecture":"x86_64","os.platform":"linux","os.version":"6.8.0-aws","runtime.name":"ruby","runtime.version":"3.3.0"}' +ddtest run +{{< /code-block >}} + +`ddtest` también acepta la variable de entorno `DD_TEST_OPTIMIZATION_RUNNER_RUNTIME_TAGS` específica del ejecutor y la bandera de CLI `--runtime-tags`. + +## Artefactos del plan {#plan-artifacts} + +`ddtest plan` escribe un directorio `.testoptimization/` en el directorio de trabajo actual. Copie este directorio desde el trabajo de planificación a cada trabajo de CI que ejecute `ddtest run` o consuma lista de archivos de plan `ddtest`. + +La mayoría de las integraciones deben tratar `.testoptimization/` como un artefacto generado. Los archivos estables para consumidores externos son: + +| Archivo | Descripción | +| ---- | ----------- | +| `.testoptimization/manifest.txt` | Versión del diseño del plan. | +| `.testoptimization/runner/test-files.txt` | Lista delimitada por nuevas líneas de archivos de prueba a ejecutar. Cada archivo contiene al menos una prueba no omitida. | +| `.testoptimization/runner/parallel-runners.txt` | Recuento de nodos de CI o recuento de trabajadores seleccionados. | +| `.testoptimization/runner/skippable-percentage.txt` | Porcentaje de tiempo de prueba omitido por Test Impact Analysis. | +| `.testoptimization/runner/tests-split/runner-N` | Lista de archivos delimitada por saltos de línea asignada al índice `N`. | +| `.testoptimization/github/config` | Salida de la matriz de GitHub Actions, escrita cuando `ddtest` detecta GitHub Actions. | + +Los archivos bajo `.testoptimization/runner/cache/`, `.testoptimization/tests-discovery/` y `.testoptimization/cache/http/*.json` son detalles de implementación. Úselos solo para la resolución de problemas. + +## Use un plan con otro ejecutor de pruebas {#use-a-plan-with-another-test-runner} + +Use un plan `ddtest` cuando desee que `ddtest` seleccione los archivos de prueba ejecutables, pero otro ejecutor los ejecute. + +Consulte [Artefactos del plan](#plan-artifacts) para los archivos `test-files.txt` y los archivos `tests-split/runner-N` por ejecutor que otro ejecutor puede consumir. + +Por ejemplo, use `.testoptimization/runner/test-files.txt` con Knapsack Pro: + +{{< code-block lang="bash" >}} +KNAPSACK_PRO_TEST_FILE_LIST_SOURCE_FILE=.testoptimization/runner/test-files.txt bundle exec rake knapsack_pro:queue:rspec +{{< /code-block >}} + +Para pytest, habilite el complemento `ddtrace` con `PYTEST_ADDOPTS` y pase la lista de archivos a `python -m pytest`: + +{{< code-block lang="bash" >}} +export PYTEST_ADDOPTS="${PYTEST_ADDOPTS:+$PYTEST_ADDOPTS }--ddtrace" +if [ -s .testoptimization/runner/test-files.txt ]; then + xargs python -m pytest < .testoptimization/runner/test-files.txt +fi +{{< /code-block >}} + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/es/tracing/guide/leveraging_diversity_sampling.md b/hugo/content/es/tracing/guide/leveraging_diversity_sampling.md index 0a5083666da..d1c88d0882e 100644 --- a/hugo/content/es/tracing/guide/leveraging_diversity_sampling.md +++ b/hugo/content/es/tracing/guide/leveraging_diversity_sampling.md @@ -3,51 +3,54 @@ further_reading: - link: /tracing/trace_pipeline/trace_retention/ tag: Documentación text: Control de la indexación de trazas para la retención -title: Comprender la política de retención de Datadog para retener eficazmente los - datos de traza +- link: https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/ + tag: Centro de arquitectura + text: 'Dominio del rastreo distribuido: desafíos de volumen de datos y el enfoque + de Datadog para un muestreo eficiente' +title: Comprenda la política de retención de Datadog para retener datos de trazas + de manera eficiente --- +## Ingesta y retención de las trazas que le interesan {#ingesting-and-retaining-the-traces-you-care-about} -## Ingerir y retener las trazas que te interesan +La mayoría de las trazas generadas por sus aplicaciones son repetitivas y no es necesariamente relevante ingerirlas y retenerlas todas. Para las solicitudes exitosas, retener una **muestra representativa** del tráfico de sus aplicaciones es suficiente, ya que no es posible analizar docenas de solicitudes trazadas individuales cada segundo. -La mayoría de las trazas (traces) generadas por tus aplicaciones son repetitivas, y no es necesariamente relevante ingerirlas y retenerlas a todas. En el caso de las solicitudes satisfactorias, basta con conservar una **muestra representativa** del tráfico de tus aplicaciones, ya que no es posible analizar decenas de solicitudes rastreadas cada segundo. +Lo más importante son las trazas que contienen síntomas de posibles problemas en su infraestructura, es decir, **trazas con errores o latencia inusual**. Además, para **endpoints específicos que son críticos para su negocio**, es posible que desee retener el 100% del tráfico, para asegurarse de poder investigar y solucionar cualquier problema del cliente con gran detalle. -Las más importante son las trazas que contienen indicios de posibles problemas en tu infraestructura, es decir, **trazas con errores o latencia inusual**. Además, para **endpoints específicos que son críticos para tu negocio**, es posible que desees retener el 100% del tráfico, para asegurarte de investigar y solucionar cualquier problema del cliente en detalle. +{{< img src="/tracing/guide/leveraging_diversity_sampling/relevant_traces.png" alt="Las trazas relevantes se retienen almacenando una combinación de trazas de alta latencia, trazas de error y trazas críticas para el negocio." style="width:80%;" >}} -{{< img src="/tracing/guide/leveraging_diversity_sampling/relevant_traces.png" alt=" Las trazas relevantes se retienen al almacenar una combinación de trazas de alta latencia, trazas de errores y trazas críticas para el negocio." style="width:80%;" >}} +## Cómo le ayuda la política de retención de Datadog a retener lo que importa {#how-datadogs-retention-policy-helps-you-retain-what-matters} -## Cómo la política de retención de Datadog te ayuda a retener lo importante +Datadog ofrece dos formas principales de retener datos más allá de los 15 minutos: +- El [filtro de retención inteligente](#diversity-sampling-algorithm-intelligent-retention-filter) que siempre está habilitado. +- [Filtros de retención personalizados basados en etiquetas](#tag-based-retention-filters) que puede configurar manualmente. -Datadog ofrece dos formas principales de retener los datos por más de 15 minutos: -- El [Filtro de retención inteligente](#diversity-sampling-algorithm-intelligent-retention-filter) que siempre está activado. -- [Filtros de retención personalizados basados en etiquetas](#tag-based-retention-filters) que puedes configurar manualmente. +{{< img src="/tracing/guide/leveraging_diversity_sampling/datadog_captures_relevant_traces.png" alt="Datadog captura trazas relevantes de errores y latencia a través del filtro de retención inteligente, y trazas críticas para el negocio a través de filtros de retención personalizados." style="width:80%;" >}} -{{< img src="/tracing/guide/leveraging_diversity_sampling/datadog_captures_relevant_traces.png" alt="Datadog captura trazas de errores y latencia relevantes mediante el filtro de retención inteligente, y trazas críticas para el negocio mediante filtros de retención personalizados." style="width:80%;" >}} +### Algoritmo de muestreo de diversidad: filtro de retención inteligente {#diversity-sampling-algorithm-intelligent-retention-filter} -### Algoritmo de muestreo de diversidad: filtro de retención inteligente +De forma predeterminada, el filtro de retención inteligente mantiene una selección representativa de trazas sin que tenga que crear docenas de filtros de retención personalizados. -Por defecto, el filtro de retención inteligente mantiene una selección representativa de trazas sin necesidad de crear decenas de filtros de retención personalizados. +Mantiene al menos un tramo (y la traza distribuida asociada) para cada combinación de `environment`, `service`, `operation` y `resource` cada 15 minutos como máximo para los percentiles de latencia `p75`, `p90` y `p95`, así como una selección representativa de errores, para cada código de estado de respuesta distinto. -Conserva al menos un tramo (y la traza distribuida asociada) para cada combinación de `environment`, `service`, `operation` y `resource` cada 15 minutos como máximo para los percentiles de latencia `p75`, `p90` y `p95`, así como una selección representativa de errores, para cada código de estado de respuesta distinto. +Para obtener más información, lea la [documentación del filtro de retención inteligente][1]. -Para saber más, lee la [documentación del filtro de retención inteligente][1]. +### Filtros de retención basados en etiquetas {#tag-based-retention-filters} -### Filtros de retención basados en etiquetas +Los [filtros de retención basados en etiquetas][2] ofrecen la flexibilidad de conservar las trazas que son más críticas para su negocio. Al indexar tramos con filtros de retención, también se almacena la traza asociada, lo que garantiza que mantenga la visibilidad de toda la solicitud y su contexto distribuido. -Los [filtros de retención basados en etiquetas][2] proporcionan la flexibilidad necesaria para conservar las trazas más importantes para tu empresa. Cuando se indexan tramos con filtros de retención, también se almacena la traza asociada, lo que asegura que se mantenga la visibilidad de toda la solicitud y su contexto distribuido. +## Búsqueda y análisis eficaces de datos de tramos indexados {#searching-and-analyzing-indexed-span-data-effectively} -## Búsqueda y análisis eficaces de datos de tramo indexados +El conjunto de datos capturado por el muestreo de diversidad **no se muestrea de manera uniforme** (es decir, no es proporcionalmente representativo de todo el tráfico). Está sesgado hacia errores y rastreos de alta latencia. Si desea crear análisis solo a partir de un conjunto de datos muestreado de manera uniforme, excluya estos tramos que se muestrean por motivos de diversidad agregando el parámetro de consulta `-retained_by:diversity_sampling` en Trace Explorer. -El conjunto de datos recopilados por el muestreo de diversidad **no está muestreado de forma uniforme** (es decir, no es proporcionalmente representativo del tráfico completo). Está sesgado hacia los errores y las trazas de alta latencia. Si deseas hacer un análisis solo sobre un conjunto de datos muestreados de forma uniforme, excluye estos tramos que se muestrean por razones de diversidad añadiendo el parámetro de consulta `-retained_by:diversity_sampling` en el Trace Explorer. +Por ejemplo, para medir la cantidad de operaciones de pago agrupadas por nivel de comerciante en su aplicación, **excluir el conjunto de datos de muestreo de diversidad** garantiza que realice este análisis a partir de un conjunto de datos representativo, por lo que las proporciones de `basic`, `enterprise` y `premium` pagos son realistas: -Por ejemplo, para medir el número de operaciones de pago agrupadas por nivel de comerciante en tu aplicación, **excluir el conjunto de datos de muestreo de diversidad** asegura que realizas este análisis sobre un conjunto de datos representativo, y así las proporciones de pagos `basic`, `enterprise` y `premium` son realistas: +{{< img src="/tracing/guide/leveraging_diversity_sampling/checkout_ops_by_tier.png" alt="Cantidad de operaciones de pago por nivel, análisis que excluyen los datos muestreados por diversidad" style="width:80%;" >}} -{{< img src="/tracing/guide/leveraging_diversity_sampling/checkout_ops_by_tier.png" alt="Número de operaciones de pago por nivel, análisis que excluye los datos de muestreo de diversidad" style="width:80%;" >}} +Por otro lado, si desea medir la cantidad de comerciantes únicos por nivel de comerciante, **incluya el conjunto de datos de muestreo de diversidad** que podría capturar identificadores de comerciante adicionales no detectados por los filtros de retención personalizados: -Por otro lado, si deseas medir el número de comerciantes únicos por nivel de comerciante, **incluye el conjunto de datos de muestreo de diversidad** que podría capturar IDs de comerciantes adicionales no detectados por los filtros de retención personalizados: - -{{< img src="/tracing/guide/leveraging_diversity_sampling/nb_merchants_by_merchant_tier.png" alt="Número de comerciantes por nivel, análisis que incluye los datos de muestreo de diversidad" style="width:80%;" >}} +{{< img src="/tracing/guide/leveraging_diversity_sampling/nb_merchants_by_merchant_tier.png" alt="Cantidad de comerciantes únicos por nivel. análisis que incluyen datos muestreados por diversidad" style="width:80%;" >}} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/tracing/trace_collection/single-step-apm/linux.md b/hugo/content/es/tracing/trace_collection/single-step-apm/linux.md new file mode 100644 index 00000000000..5d8d3dee4f4 --- /dev/null +++ b/hugo/content/es/tracing/trace_collection/single-step-apm/linux.md @@ -0,0 +1,241 @@ +--- +aliases: +- /es/tracing/trace_collection/automatic_instrumentation/single-step-apm/linux/ +code_lang: linux +code_lang_weight: 0 +further_reading: +- link: /tracing/metrics/runtime_metrics/ + tag: Documentación + text: Habilitar métricas de tiempo de ejecución +- link: https://www.datadoghq.com/blog/single-step-instrumentation-rules/ + tag: blog + text: Administre el rastreo de servicios entre servidores con reglas de instrumentación + de Single Step +title: Instrumentación de Single Step APM en Linux +type: multi-code-lang +--- +## Descripción general {#overview} + +En un servidor o VM de Linux, utilice Single Step Instrumentation (SSI) para APM a fin de instalar el Datadog Agent e [instrumentar][14] sus aplicaciones en un solo paso, sin necesidad de configuración adicional. + +{{< skill-callout + title="Configure APM con un Agent" + text="Install the `dd-apm` skill in your AI coding agent for guided APM setup." + action_name="copy_dd_apm_skill_install_cmd" >}} +npx skills add https://github.com/datadog-labs/agent-skills --skill dd-apm --full-depth -y +{{< /skill-callout >}} + +## Habilite APM en sus aplicaciones {#enable-apm-on-your-applications} + +
Antes de continuar, confirme que su entorno sea compatible revisando la guía de compatibilidad de SSI.
+ +### Nueva instalación de Agent {#new-agent-installation} + +Si aún no tiene instalado un Datadog Agent, instale el Agent y habilite SSI en un solo paso. + +1. Ejecute el siguiente comando en su servidor o VM de Linux: + + ```shell + DD_API_KEY= \ + DD_SITE="{{< region-param key="dd_site" >}}" \ + DD_APM_INSTRUMENTATION_ENABLED=host \ + bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" + ``` + + Replace `` with your [Datadog API key][22]. The command installs or updates the Agent and the SSI packages. + + By default, SSI installs the latest SDK versions. To pin specific versions, add the `DD_APM_INSTRUMENTATION_LIBRARIES` variable with comma-separated `language:major` pairs. Available versions are listed in the source repositories for each language: [Java][8] (`java`), [Node.js][9] (`js`), [Python][10] (`python`), [.NET][11] (`dotnet`), [Ruby][12] (`ruby`), [PHP][13] (`php`). + +1. Restart your applications. + +
SSI adds a small amount of startup time to instrumented applications. If this overhead is not acceptable for your use case, contact Datadog Support.
+ +#### Generate the command from Datadog + +To get a command pre-filled with your API key and site, go to the [Install the Datadog Agent on Linux][15] page and turn on {{< ui >}}Application Performance Monitoring{{< /ui >}} under {{< ui >}}Core Observability{{< /ui >}}. + +{{< img src="tracing/trace_collection/enable_apm.png" alt="La sección 'Customize your Agent coverage' de las instrucciones en la aplicación para instalar el Datadog Agent en Linux" style="width:100%;" >}} + +{{< site-region region="us,us3,us5,eu,ap1,ap2,uk1" >}} +Para seleccionar versiones del SDK desde los menús desplegables, haga clic en {{< ui >}}Customize Library Versions{{< /ui >}}. + +{{< img src="tracing/trace_collection/customize_library_versions.png" alt="El menú desplegable 'Customize library versions' en las instrucciones para instalar el Datadog Agent en Linux" style="width:100%;" >}} +{{< /site-region >}} + +Luego, copie y ejecute el comando generado. + +### Instalación de Agent existente {#existing-agent-installation} + +Si ya tiene instalado un Datadog Agent, vuelva a ejecutar el comando de instalación del Agent desde [Nueva instalación del Agent](#new-agent-installation) en el servidor. El comando actualiza el Agent existente y habilita SSI. + +Alternativamente, utilice Fleet Automation para habilitar SSI desde Datadog: + +1. En Datadog, vaya a [**Fleet Automation > Configuration**][21]. +1. Haga clic en {{< ui >}}Configure Agents{{< /ui >}}. +1. Aplique filtros para seleccionar los Agent que desea configurar, luego haga clic en **Siguiente**. + + {{< img src="tracing/trace_collection/filter-agents.png" alt="La pantalla de filtrado de Agent en Fleet Automation, con opciones para definir el contexto por entorno, sistema operativo y nombre de host" style="width:100%;" >}} + +1. Haga clic en el mosaico {{< ui >}}Application Performance Monitoring (APM){{< /ui >}}, luego haga clic en {{< ui >}}Next{{< /ui >}}. + + {{< img src="tracing/trace_collection/select-products-core-obs.png" alt="La pantalla de selección de productos en Fleet Automation, que muestra el mosaico de Application Performance Monitoring (APM)" style="width:80%;" >}} + +1. En la pantalla {{< ui >}}Configure SDKs Installation{{< /ui >}}, haga clic en {{< ui >}}Yes{{< /ui >}} para instalar automáticamente el SDK. Seleccione {{< ui >}}Use latest version{{< /ui >}}, o desmarque para especificar versiones individuales de SDK. + + {{< img src="tracing/trace_collection/configure-sdks-installation.png" alt="La pantalla Configurar instalación de SDK en Fleet Automation, con opciones para habilitar la instalación automática de SDK y seleccionar versiones." style="width:60%;" >}} + +1. Haga clic en **Siguiente**. +1. Revise su configuración y haga clic en {{< ui >}}Deploy Configuration{{< /ui >}}. + +## Verifique la instalación {#verify-the-installation} + +1. Confirme que el Agent se está ejecutando: + + ```shell + sudo datadog-agent status + ``` + +1. Confirme que la inyección de SSI esté activada en el servidor: + + ```shell + cat /etc/ld.so.preload && ls /opt/datadog-packages/ | grep apm + ``` + + La salida enumera la biblioteca del inyector de APM en `/etc/ld.so.preload` y uno o más paquetes `datadog-apm-*`. + +1. Después de que sus aplicaciones reciban tráfico, confirme que sus servicios aparecen en la [página de servicios de APM][23]. Si no aparecen en unos minutos, siga la [guía de solución de problemas de SSI][19]. + +## Configurar etiquetas de servicio unificadas {#configure-unified-service-tags} + +Las etiquetas de servicio unificadas (USTs) aplican etiquetas coherentes en trazas, métricas y registros, lo que facilita la navegación y la correlación de sus datos de observabilidad. Aprenda a [configurar USTs para servicios de Linux][16]. + +## Habilitar productos y funciones que dependen del SDK {#enable-sdk-dependent-products-and-features} + +Después de que SSI cargue el SDK de Datadog en sus aplicaciones y habilite el rastreo distribuido, puede configurar productos adicionales que dependen del SDK: + +{{< ssi-products >}} + +Utilice uno de los siguientes métodos de configuración: + +- **[Configurar en `application_monitoring.yaml`][18]**: + + Configure productos y funciones en todos los servicios de un servidor sin modificar las líneas de comando de la aplicación. + +- **[Establecer variables de entorno][17]**: + + Habilite productos estableciendo variables de entorno directamente en la configuración de su aplicación. + +## Opciones avanzadas {#advanced-options} + +### Actualizar la versión del SDK {#update-sdk-version} + +La versión del SDK se fija cuando ejecuta el comando de instalación del Agent. + +Para actualizar las versiones del SDK: + +1. Vuelva a ejecutar el comando de instalación del Agent. Este comando también actualiza el Agent a la versión más reciente. +1. Reinicie sus aplicaciones. + +### Definir reglas de instrumentación {#define-instrumentation-rules} + +{{< site-region region="gov" >}} +
Las reglas de instrumentación no son compatibles con su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} + +Las reglas de instrumentación (disponibles para el Agent v7.73+) le permiten controlar qué procesos son instrumentados automáticamente por SSI en servidores Linux. + +Para configurar las reglas de instrumentación: + +1. En Datadog, vaya a {{< ui >}}APM{{< /ui >}} > {{< ui >}}Service Setup{{< /ui >}} > [{{< ui >}}Manage Instrumentation Rules{{< /ui >}}][20]. +1. Haga clic en {{< ui >}}Add or Edit Rules{{< /ui >}}. +1. Definir las reglas de instrumentación: + 1. Haga clic en {{< ui >}}Add New Rule{{< /ui >}}, luego elija {{< ui >}}Allow Rule{{< /ui >}} o {{< ui >}}Block Rule{{< /ui >}} para especificar si los procesos coincidentes deben ser instrumentados. + 1. Nombre su regla. + 1. Agregue una o más condiciones. Consulte [Definir las condiciones de la regla](#define-rule-conditions) para obtener más información. + + {{< img src="tracing/trace_collection/define_instrumentation_rule.png" alt="La interfaz de usuario de reglas de instrumentación, que muestra las opciones de configuración para definir una regla" style="width:100%;" >}} + +1. (Opcional) Arrastre y suelte las reglas para reordenarlas. + + **Nota**: Las reglas se evalúan en orden. Después de que un proceso coincide con una regla, las reglas subsiguientes se ignoran. + +1. Establezca el comportamiento predeterminado (permitir o bloquear) para los procesos que no coinciden con ninguna regla. +1. Haga clic en {{< ui >}}Next{{< /ui >}} para obtener una vista previa de sus reglas. +1. Haga clic en {{< ui >}}Deploy Rules{{< /ui >}}. + +Si Remote Configuration está habilitado, las reglas se implementan en cada servidor y se aplican en aquellos con SSI habilitado en un plazo de 50 segundos. Alternativamente, haga clic en {{< ui >}}Export{{< /ui >}} para exportar el archivo de configuración y aplicarlo manualmente a sus servidores. + +#### Definir las condiciones de la regla {#define-rule-conditions} + +Cada regla consta de una o más condiciones. Una condición incluye los siguientes elementos: +- {{< ui >}}Attribute{{< /ui >}}: La propiedad del proceso que evalúa la regla. +- {{< ui >}}Operator{{< /ui >}}: La lógica de comparación (`equals`, `not equals`, `prefix` o `contains`). +- {{< ui >}}Value{{< /ui >}}: El texto o patrón a coincidir, como un nombre de proceso o un indicador de línea de comandos. + +Los atributos admitidos incluyen: +| Atributo | Descripción | Ejemplo | +| --------- | ----------- | ------- | +| Sistema operativo | SO del servidor. | `linux` | +| Ejecutable | Nombre del ejecutable del proceso. | `python3.11` | +| Ruta completa del ejecutable | Ruta completa del ejecutable. | `/usr/bin/python3.11` | +| Argumentos | Argumentos de línea de comandos utilizados para iniciar el proceso. | `--env=production` | +| Directorio de trabajo | Directorio de trabajo del proceso. | `/app` | +| Lenguaje | Lenguaje de programación detectado para el proceso. | `python` | +| Archivo de punto de entrada | El archivo específico utilizado para iniciar la aplicación. | `app.py`, `server.js` | + +#### Ejemplos de casos de uso {#example-use-cases} + +Revise los siguientes ejemplos que demuestran cómo aplicar reglas de instrumentación: + +{{< collapse-content title="Ejemplo 1: Instrumentar todos los procesos excepto algunos específicos" level="h5" >}} + +Instrumentar todos los procesos de forma predeterminada. Agregue reglas de bloqueo para excluir servicios que agregarían ruido sin valor, como trabajos cron de análisis y procesadores por lotes de Java. + +{{< img src="tracing/trace_collection/instrumentation-rules-example-1.png" alt="Dos reglas de instrumentación de bloqueo dirigidas a condiciones de Directorio de trabajo y Archivo de punto de entrada, con un valor predeterminado de permitir la instrumentación." style="width:100%;" >}} + +{{< /collapse-content >}} + +{{< collapse-content title="Ejemplo 2: Instrumentar solo procesos específicos" level="h5" >}} + +Bloquear toda la instrumentación de forma predeterminada. Agregue reglas de permitir para incluir procesos específicos en APM. Este enfoque le brinda un control preciso y funciona bien para implementaciones graduales. + +Por ejemplo, para instrumentar solo un servicio de pago y un portal de clientes, cree reglas de permitir usando {{< ui >}}Working Directory{{< /ui >}}, luego establezca el comportamiento predeterminado en {{< ui >}}Block Instrumentation{{< /ui >}}. + +{{< img src="tracing/trace_collection/instrumentation-rules-linux-example-2.png" alt="Dos reglas de instrumentación de permitir que apuntan a servicios en directorios de trabajo específicos, con un valor predeterminado de bloquear la instrumentación." style="width:100%;" >}} + +{{< /collapse-content >}} + +## Elimine la instrumentación de Single Step APM de su Agent {#remove-single-step-apm-instrumentation-from-your-agent} + +Para dejar de producir trazas para todos los servicios en su infraestructura: + +1. Ejecute: + ```shell + dd-host-install --uninstall + ``` +2. Reinicie los servicios en el servidor o la VM. + +## Solución de problemas {#troubleshooting} + +Si encuentra problemas al habilitar APM con SSI, consulte la [guía de solución de problemas de SSI][19]. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[8]: https://github.com/DataDog/dd-trace-java/releases +[9]: https://github.com/DataDog/dd-trace-js/releases +[10]: https://github.com/DataDog/dd-trace-py/releases +[11]: https://github.com/DataDog/dd-trace-dotnet/releases +[12]: https://github.com/DataDog/dd-trace-rb/releases +[13]: https://github.com/DataDog/dd-trace-php/releases +[14]: /es/tracing/glossary/#instrumentation +[15]: https://app.datadoghq.com/fleet/install-agent/latest?platform=linux +[16]: /es/getting_started/tagging/unified_service_tagging/?tab=kubernetes#non-containerized-environment +[17]: /es/tracing/trace_collection/library_config/ +[18]: /es/tracing/trace_collection/library_config/application_monitoring_yaml/ +[19]: /es/tracing/trace_collection/automatic_instrumentation/single-step-apm/troubleshooting +[20]: https://app.datadoghq.com/apm/service-setup/workload-selection +[21]: https://app.datadoghq.com/fleet/agent-management +[22]: https://app.datadoghq.com/organization-settings/api-keys +[23]: https://app.datadoghq.com/apm/services \ No newline at end of file diff --git a/hugo/content/fr/api/latest/cloud-cost-management/update-a-unit-cost/index.md b/hugo/content/fr/api/latest/cloud-cost-management/update-a-unit-cost/index.md new file mode 100644 index 00000000000..17517ff3baa --- /dev/null +++ b/hugo/content/fr/api/latest/cloud-cost-management/update-a-unit-cost/index.md @@ -0,0 +1,3 @@ +--- +title: Mettez à jour un coût unitaire +--- diff --git a/hugo/content/fr/api/latest/dem/delete-an-ignored-inferred-dem-journey/index.md b/hugo/content/fr/api/latest/dem/delete-an-ignored-inferred-dem-journey/index.md new file mode 100644 index 00000000000..21b698946f8 --- /dev/null +++ b/hugo/content/fr/api/latest/dem/delete-an-ignored-inferred-dem-journey/index.md @@ -0,0 +1,3 @@ +--- +title: Supprimez un parcours DEM inféré ignoré +--- diff --git a/hugo/content/fr/api/latest/llm-observability/create-an-agent-observability-project/index.md b/hugo/content/fr/api/latest/llm-observability/create-an-agent-observability-project/index.md new file mode 100644 index 00000000000..48013fdccdc --- /dev/null +++ b/hugo/content/fr/api/latest/llm-observability/create-an-agent-observability-project/index.md @@ -0,0 +1,3 @@ +--- +title: Créez un projet Agent Observability +--- diff --git a/hugo/content/fr/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md b/hugo/content/fr/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md new file mode 100644 index 00000000000..b28d9aab143 --- /dev/null +++ b/hugo/content/fr/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md @@ -0,0 +1,3 @@ +--- +title: Mettre à jour la file d'attente d'annotations d'Agent Observability +--- diff --git a/hugo/content/fr/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md b/hugo/content/fr/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md new file mode 100644 index 00000000000..87e943a615d --- /dev/null +++ b/hugo/content/fr/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md @@ -0,0 +1,3 @@ +--- +title: Enquêtez sur une anomalie de série temporelle +--- diff --git a/hugo/content/fr/feature_flags/client/javascript.md b/hugo/content/fr/feature_flags/client/javascript.md index 39099bbc5d8..994aba1d3de 100644 --- a/hugo/content/fr/feature_flags/client/javascript.md +++ b/hugo/content/fr/feature_flags/client/javascript.md @@ -14,9 +14,12 @@ further_reading: - link: /feature_flags/browser_developer_extension/ tag: Documentation text: Extension de développement pour navigateur +- link: /feature_flags/guide/proxy_sdk_traffic/ + tag: Guide + text: Trafic du SDK Proxy Feature Flag title: Feature Flags JavaScript --- -## Vue d'ensemble {#overview} +## Présentation {#overview} Cette page décrit comment instrumenter votre application JavaScript de navigateur avec le SDK Datadog Feature Flags. Les Datadog Feature Flags offrent un moyen unifié de contrôler à distance la disponibilité des fonctionnalités dans votre application, d'expérimenter en toute sécurité et de proposer de nouvelles expériences en toute confiance. diff --git a/hugo/content/fr/incident_response/work_management/ai/_index.md b/hugo/content/fr/incident_response/work_management/ai/_index.md new file mode 100644 index 00000000000..407f7608355 --- /dev/null +++ b/hugo/content/fr/incident_response/work_management/ai/_index.md @@ -0,0 +1,34 @@ +--- +aliases: +- /fr/service_management/case_management/mcp_server/ +- /fr/incident_response/case_management/mcp_server/ +- /fr/incident_response/case_management/ai/ +description: Datadog Work Management s'intègre aux outils d'IA pour aider à automatiser + le triage, l'attribution et la résolution des éléments de travail à l'aide du MCP + Server et d'agents personnalisés. +site_support_id: work_management_ai_site_support +title: Outils d'IA pour la gestion du travail +--- +Datadog Work Management vous permet d'attribuer des éléments de travail à des agents d'IA aux côtés des personnes. Il s'intègre au Datadog MCP Server et aux agents personnalisés créés avec Bits Agent Builder pour automatiser le triage, l'attribution et la résolution des éléments de travail. + +## MCP Server {#mcp-server} + +Le Datadog MCP Server expose un ensemble d'outils `cases` afin que les agents d'IA prenant en charge le [Model Context Protocol (MCP)][2] puissent accéder aux données de Work Management. L'ensemble d'outils `cases` permet aux agents d'IA de créer, rechercher, mettre à jour et gérer des éléments de travail. Les flux de travail pris en charge incluent : + +- **Recherche d'éléments de travail** en fonction du statut, de la priorité, du projet ou d'autres filtres +- **Récupération des détails d'un élément de travail** pour comprendre la chronologie la plus récente des actions et le travail restant +- **Création d'un nouvel élément de travail** pour suivre les informations liées à une enquête en cours +- **Mise à jour d'un élément de travail existant** avec de nouvelles constatations, des liens vers des tickets Jira associés ou une priorité élevée + +Pour obtenir des instructions de configuration et des détails complets sur l'ensemble d'outils `cases`, consultez la [documentation du Datadog MCP Server][1]. + +## Agents personnalisés {#custom-agents} + +{{< callout url="https://www.datadoghq.com/product-preview/custom-agents-in-case-management/" btn_hidden="false" header="Rejoindre la version préliminaire">}} L'intégration de Work Management avec des agents personnalisés est en version préliminaire.{{< /callout >}} + +Attribuez des éléments de travail à des agents spécialisés créés avec [Bits Agent Builder][3] pour automatiser l'intégralité du cycle de vie des éléments de travail, du triage initial au suivi et à la résolution. Pour des exemples de cas d'utilisation, des archétypes d'agents, ainsi que l'attribution manuelle et automatisée, consultez [Agents personnalisés][4]. + +[1]: /fr/mcp_server +[2]: https://modelcontextprotocol.io/ +[3]: /fr/actions/agents/ +[4]: /fr/incident_response/work_management/ai/custom_agents/ \ No newline at end of file diff --git a/hugo/content/fr/observability_pipelines/sources/http_server.md b/hugo/content/fr/observability_pipelines/sources/http_server.md index ee8210e6ca3..9ce3917ab56 100644 --- a/hugo/content/fr/observability_pipelines/sources/http_server.md +++ b/hugo/content/fr/observability_pipelines/sources/http_server.md @@ -24,7 +24,7 @@ Vous pouvez également [envoyer des logs fournis par AWS avec le Datadog Lambda
Pour la gestion des secrets : Saisissez uniquement les identifiants pour l'adresse du HTTP/S Server et, le cas échéant, le nom d'utilisateur et le mot de passe pour l'autorisation simple (également appelée basique) ainsi que la clé de mot de passe TLS. Ne saisissez pas les valeurs réelles.
-Configurez cette source lorsque vous [configurez un pipeline][3]. Vous pouvez configurer un pipeline dans l'[interface utilisateur][1], en utilisant l'[API][4] ou avec [Terraform][5]. Les instructions de cette section concernent la configuration de la source dans l'IU. +Configurez cette source lorsque vous [configurez un pipeline][3]. Vous pouvez configurer un pipeline dans l'[interface utilisateur][1], en utilisant l'[API][4] ou avec [Terraform][5]. Les instructions de cette section concernent la configuration de la source dans l'UI. Après avoir sélectionné la source HTTP/S Server dans l'interface utilisateur du pipeline : @@ -87,7 +87,7 @@ Pour envoyer des logs fournis par AWS vers Observability Pipelines avec la sourc - [Configurez un pipeline avec la source HTTP/S Server](#set-up-a-pipeline). - [Déployez le Datadog Forwarder](#deploy-the-datadog-lambda-forwarder). -**Remarque** : Ceci est disponible pour les versions 2.51 ou ultérieures du Worker. +**Note** : ceci est disponible pour les versions de Worker 2.15 ou ultérieures. ### Configurez un pipeline {#set-up-a-pipeline} diff --git a/hugo/content/fr/security/application_security/setup/docker/_index.md b/hugo/content/fr/security/application_security/setup/docker/_index.md new file mode 100644 index 00000000000..6120e37c744 --- /dev/null +++ b/hugo/content/fr/security/application_security/setup/docker/_index.md @@ -0,0 +1,46 @@ +--- +disable_sidebar: true +further_reading: +- link: /security/application_security/ + tag: Documentation + text: Protégez contre les menaces avec Datadog App and API Protection +- link: /security/application_security/add-user-info/ + tag: Documentation + text: Suivi de l'activité des utilisateurs +- link: /security/default_rules/?category=cat-application-security + tag: Documentation + text: Règles OOTB d'App and API Protection +- link: /security/application_security/troubleshooting + tag: Documentation + text: Dépannage d'App and API Protection +- link: /security/application_security/how-it-works/ + tag: Documentation + text: Fonctionnement d'App and API Protection dans Datadog +title: Configurer App and API Protection sur Docker +--- +{{< site-region region="gov" >}} +
+App and API Protection est en préversion sur le site Datadog Government US1-FED. +
+{{< /site-region >}} + +Apprenez à configurer App and API Protection (AAP) sur vos conteneurs Docker en sélectionnant le langage de programmation du service conteneurisé. + +
+

Votre environnement est-il manquant ?

+ Envoyez-nous une demande pour votre environnement manquant ici. +
+ +{{< appsec-integrations >}} + {{< appsec-integration name="Python" avatar="python" link="/security/application_security/setup/python/docker" >}} + {{< appsec-integration name="Node.js" avatar="node" link="/security/application_security/setup/nodejs/docker" >}} + {{< appsec-integration name="Java" avatar="java" link="/security/application_security/setup/java/docker" >}} + {{< appsec-integration name="Go" avatar="go" link="/security/application_security/setup/go/dockerfile" >}} + {{< appsec-integration name="Ruby" avatar="ruby" link="/security/application_security/setup/ruby/docker" >}} + {{< appsec-integration name=".NET" avatar="dotnet" link="/security/application_security/setup/dotnet/docker" >}} + {{< appsec-integration name="PHP" avatar="php" link="/security/application_security/setup/php/docker" >}} +{{< /appsec-integrations >}} + +## Pour aller plus loin {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/fr/security/cloud_security_management/setup/agent/linux.md b/hugo/content/fr/security/cloud_security_management/setup/agent/linux.md index 1745f54ec0b..e5ae10e5362 100644 --- a/hugo/content/fr/security/cloud_security_management/setup/agent/linux.md +++ b/hugo/content/fr/security/cloud_security_management/setup/agent/linux.md @@ -43,14 +43,14 @@ sbom: enabled: true # Enables scanning of application libraries in addition to OS packages (Agent 7.70+) analyzers: ["os", "languages"] - # Enables runtime package prioritization (Preview, Agent 7.79+) + # Enables runtime package prioritization (Agent 7.79+) # See Runtime Package Prioritization section below. enrichment: usage: enabled: true {{< /code-block >}} -**Remarque** : `enrichment.usage.enabled: true` nécessite le Datadog Agent **7.79.0 ou une version ultérieure**. Consultez la section [Runtime Package Prioritization](#runtime-package-prioritization-preview) pour connaître les prérequis. +**Remarque** : `enrichment.usage.enabled: true` nécessite le Datadog Agent **7.79.0 ou une version ultérieure**. Consultez la section [Priorisation des paquets d’exécution](#runtime-package-prioritization) pour connaître les prérequis. {{< code-block lang="bash" filename="/etc/datadog-agent/security-agent.yaml" disable_copy="false" collapsible="true" >}} compliance_config: @@ -84,7 +84,7 @@ L'analyzer `languages` couvre les écosystèmes de paquets suivan | Elixir | Mix lock | | Julia | Julia | -## Runtime Package Prioritization (Preview) {#runtime-package-prioritization-preview} +## Priorisation des paquets d’exécution {#runtime-package-prioritization} Runtime package prioritization identifie quels packages dans une image de conteneur sont utilisés à l'exécution, afin que vous puissiez prioriser les vulnérabilités du code qui s'exécute par rapport aux vulnérabilités des packages installés mais jamais exécutés. @@ -111,7 +111,7 @@ sbom: enabled: true container_image: enabled: true - # Enables runtime package prioritization (Preview, Agent 7.79+) + # Enables runtime package prioritization (Agent 7.79+) enrichment: usage: enabled: true diff --git a/hugo/content/ja/actions/private_actions/_index.md b/hugo/content/ja/actions/private_actions/_index.md new file mode 100644 index 00000000000..d6906da543b --- /dev/null +++ b/hugo/content/ja/actions/private_actions/_index.md @@ -0,0 +1,69 @@ +--- +aliases: +- /ja/service_management/workflows/private_actions/ +- /ja/service_management/app_builder/private_actions/ +description: オンプレミスアクションの実行および認証レイヤーとしてプライベートアクションランナーを使用し、Datadog 製品からプライベートネットワーク内のサービスに対してアクションを実行します。 +disable_toc: false +further_reading: +- link: actions/private_actions/set_up_agent_based + tag: ドキュメント + text: プライベートアクションランナーのセットアップ +- link: actions/private_actions/enroll_runner + tag: ドキュメント + text: 登録と所有権 +- link: /actions/private_actions/authorize_private_actions/ + tag: ドキュメント + text: Private Actions の認証 +title: Private Actions +--- +## 概要 {#overview} + +プライベートアクションを使用すると、Kubernetes クラスター、内部ホスト、データベース、内部 API などのプライベートネットワーク内のサービスに対して、それらのサービスをパブリックインターネットに公開することなくアクションを実行できます。これらは、Datadog Agent 内 (推奨) またはスタンドアロンランナーとして環境にデプロイするプライベートアクションランナーを通じて実行できます。プライベートアクションを使用する Datadog 製品には、Workflow Automation、App Builder、Datadog MCP、および Bits AI 調査が含まれます。 + +プライベートアクションは、次の 2 つのレイヤーに依存します。 + +- [**プライベートアクションランナー**](#private-action-runner)がアクションを実行します。ネットワーク内で実行され、Datadog からアクションタスクを受信し、ターゲットサービスに対して各タスクを実行し、結果を Datadog に返します。 +- [**認証レイヤー**](#authorization-models)は Datadog で管理されます。どのユーザーや製品がどのランナーでどのアクションを実行できるかを定義し、アクションがランナーに到達する前に各アクションの許可または拒否を行います。ランナーが実行を許可されるアクションは、Agent 構成 (`datadog.yaml`) のアクション許可リストによって Agent 側でも制限されます。 + +## プライベートアクションランナー {#private-action-runner} + +プライベートアクションランナーは、プライベートアクションを実行するために環境内にデプロイするコンポーネントです。Datadog へのアウトバウンドコネクションを開き、アクションタスクをポーリングし、ターゲットサービスに対して各タスクを実行し、結果を返します。 + +プライベートアクションランナーには、自身でデプロイおよび管理するスタンドアロンランナーと、Datadog Agent に組み込まれたランナーの 2 つの形式があります。 + +| | Datadog Agent 内のランナー| スタンドアロンランナー | +|---|---|---| +| **概要** | 単一の構成フラグで有効化される、Datadog Agent のコンポーネント。| Datadog Agent とは独立してインストールおよび管理できる専用コンテナ。| +| **推奨されるケース** | すでに Datadog Agent を実行しており、Agent のライフサイクルを通じてランナーを管理したい場合。| Agent でまだ利用できないインテグレーションが必要です。| +| **ステータス** | 新規デプロイメントに推奨。| サポート対象 (メンテナンスモード)。| + +
Datadog では、プライベートアクションランナーを Datadog Agent で実行することを推奨しています
+ +インストール手順については、[Datadog Agent でのプライベートアクションランナーのセットアップ][1] または [スタンドアロンランナーのセットアップ][2] を参照してください。 + +## 認証モデル {#authorization-models} + +Datadog は 2 つの認証モデルを提供しています。ランナーが使用するモデルはランナーの登録時に設定され、ランナーの所有権に基づきます。詳細については、[登録と所有権][3] を参照してください。 + +- **実行ポリシー**は、Datadog Agent のランナーに適用され、大規模なアクセス管理のために構築されています。各ランナーの各インテグレーションに対して個別のコネクションを作成する代わりに、Agent タグを使用して 1 つ以上のランナーセットをターゲットにします。実行ポリシーでは、きめ細かな制御も可能です。特定のアクションやアクションセットの許可または拒否、および Kubernetes アクションのターゲット Kubernetes ネームスペースなど、インテグレーション固有のスコープを適用できます。 +- **コネクション**は、Agent 内のランナーとスタンドアロンランナーの両方で利用できます。これらは最大で 1 つのランナーにのみアタッチできます。コネクションにはサービスの資格情報を保存できます。 + +2 つのモデルを比較し、どちらがランナーに適用されるかを決定するには、[Private Actions の認証][4] を参照してください。 + +## 次のステップ {#next-steps} + +- **プライベートアクションを初めて使用する場合**: [プライベートアクションの概要][7] に従ってランナーをデプロイし、最初のアクションを実行してください。 +- **Datadog Agent にランナーがあり、フリート全体でアクセス制御を行いたい場合**: [実行ポリシー][5] で認証してください。 +- **Agent 内のランナーまたはスタンドアロンランナーを持っていて、単一のランナーを認証したい場合**: [コネクション][6] で認証してください。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/actions/private_actions/set_up_agent_based/ +[2]: /ja/actions/private_actions/set_up_standalone/ +[3]: /ja/actions/private_actions/enroll_runner/ +[4]: /ja/actions/private_actions/authorize_private_actions/ +[5]: /ja/actions/private_actions/execution_policies/ +[6]: /ja/actions/connections/ +[7]: /ja/actions/private_actions/getting_started/ \ No newline at end of file diff --git a/hugo/content/ja/actions/private_actions/set_up_agent_based.md b/hugo/content/ja/actions/private_actions/set_up_agent_based.md new file mode 100644 index 00000000000..4b3f0999d47 --- /dev/null +++ b/hugo/content/ja/actions/private_actions/set_up_agent_based.md @@ -0,0 +1,444 @@ +--- +aliases: +- /ja/service_management/workflows/private_actions/use_private_actions +- /ja/service_management/app_builder/private_actions/use_private_actions +- /ja/actions/private_actions/use_private_actions/ +- /ja/actions/private_actions/update_private_action_runner/ +description: Datadog Agent 内で実行されるプライベートアクションランナーをインストール、登録、管理、更新します。 +disable_toc: false +further_reading: +- link: actions/private_actions/ + tag: ドキュメント + text: Private Actions +- link: actions/private_actions/enroll_runner + tag: ドキュメント + text: 登録と所有権 +- link: actions/private_actions/execution_policies + tag: ドキュメント + text: 実行ポリシー +- link: actions/private_actions/set_up_standalone + tag: ドキュメント + text: スタンドアロンのプライベートアクションランナーをセットアップする +title: Datadog Agent でプライベートアクションランナーをセットアップする +--- +## 概要 {#overview} + +Datadog Agent でプライベートアクションランナーを実行することは、新規デプロイメントにおいて推奨される方法です。すでに Datadog Agent を実行している場合は、単一の構成フラグでランナーを有効にし、Agent のライフサイクルを通じて管理できます。 + +ランナーのセットアップは 3 つのステップで行います。 + +1. [**インストール**](#install-the-runner): 環境に適したデプロイメントオプションを使用してランナーをインストールします。 +1. [**登録**](#enroll-the-runner): ランナーの所有権と使用する認証モデルを設定します。 +1. [**更新**](#update-the-runner): Agent のアップグレードの一環としてランナーを更新します。 + +ランナーを別のバイナリとしてデプロイする場合は、[スタンドアロンのプライベートアクションランナーをセットアップする][1] を参照してください。 + +## 前提条件 {#prerequisites} + +- **Datadog Agent 7.81.0 以降**がインストールされた Linux または Windows ホスト、あるいは **Datadog Operator v1.28.0 以降**または **Datadog Helm chart 3.231.6 以降**がインストールされた Kubernetes クラスター。 +- [Remote Configuration][2] が組織で有効になっていること。 +- Datadog へのネットワークアクセス (`https://{{< region-param key=dd_site >}}`)。 + +## ランナーをインストールする {#install-the-runner} + +Datadog Agent 内のランナーには、ランナーがどこで動作する必要があるかに応じて、3 つのデプロイメントオプションがあります。 + +| デプロイメントオプション | 実行方法 | デプロイ方法 | 最適用途 | +|---|---|---|---| +| **ホスト** | Linux または Windows ホスト上の Datadog Agent とは別のプロセスとして実行。| ホストインストール | 特定のホストをターゲットとするアクション。| +| **Kubernetes ノード Agent** | ホストプロセスと同じランナーバイナリを使用する、ノード Agent 内のコンテナ。| Helm、Operator | Kubernetes クラスター内のノードローカルアクション。| +| **Kubernetes クラスター Agent** | クラスター Agent 内のインプロセスで、個別のバイナリはありません。1 つのランナーがクラスター全体を処理します。| Helm、Operator | クラスター全体の Kubernetes アクション。| + +ランナーを所有者付きとして登録する UI 主導のフローである **Fleet Automation**、または登録タイプを自分で選択する**手動インストール**のいずれかでインストールするオプションがあります。 + +### Fleet Automation の使用 (推奨) {#using-fleet-automation-recommended} + +Fleet Automation のインストールフローは、すべてのプラットフォームで共通です。 + +1. [Fleet Automation インストールページ][3] に移動し、プラットフォームを選択します。Kubernetes の場合は、[手動インストール](#manual-installation)タブの手順に従うため、インストール方法として **Helm Chart** または **Datadog Operator** も選択してください。 +1. **Agent カバレッジのカスタマイズ**で、**最適化と修復**セクションに移動し、**Agent によるアクションの実行を有効にする**をオンにします。これにより、`on_prem_runner_write` スコープを持つアプリケーションキーが作成され、[コネクション][4] で認証された**所有者付き**としてランナーが登録されます。代わりに [実行ポリシー][5] で認証された所有者なしのランナーを登録するには、[手動インストール](#manual-installation)を使用してください。 +1. インストールパネルの残りの指示に従って API キーを追加し、インストールを完了します。 +1. インストール後、[プライベートアクションランナー][6] に移動し、ランナーがリストにあることを確認します。 + +### 手動インストール {#manual-installation} + +{{< tabs >}} +{{% tab "Linux" %}} +Agent のインストール時または実行時に、以下の環境変数を設定します。ホスト上では、プライベートアクションランナーの設定に `DD_PRIVATE_ACTION_RUNNER_*` プレフィックスを使用します。 + +```bash +DD_API_KEY= \ +DD_APP_KEY= \ +DD_SITE="{{< region-param key=dd_site >}}" \ +DD_PRIVATE_ACTION_RUNNER_ENABLED=true \ +DD_PRIVATE_ACTION_RUNNER_ACTIONS_ALLOWLIST=com.datadoghq.kubernetes.*,com.datadoghq.remoteaction.* \ +bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" +``` + +`DD_APP_KEY` は、Fleet Automation と同様、ランナーを所有者付きとして登録します。アプリケーションキーには `on_prem_runner_write` スコープが必要です。`DD_PRIVATE_ACTION_RUNNER_ACTIONS_ALLOWLIST` はカンマ区切りのリストを受け取ります。バンドルのワイルドカードを使用して、Datadog Agent のランナーが実行できるアクションを許可します。`com.datadoghq.kubernetes.*` および `com.datadoghq.remoteaction.*`。代わりにランナーの組み込みデフォルトアクション (読み取り専用の Remote Action アクションと、Cluster Agent 上の読み取り専用 Kubernetes アクションのセット) に依存する場合は、許可リストを未設定のままにします。 + +インストール後、[プライベートアクションランナー][1] に移動し、ランナーがリストにあることを確認します。 + +[1]: https://app.datadoghq.com/actions/action-catalog + +{{% /tab %}} +{{% tab "Windows" %}} + +Datadog Agent 7.81.0 以降をインストールまたはアップグレードし、`C:\ProgramData\Datadog\datadog.yaml` を編集します。 + +```yaml +app_key: + +private_action_runner: + enabled: true + self_enroll: true + actions_allowlist: + - "com.datadoghq.kubernetes.*" + - "com.datadoghq.remoteaction.*" +``` + +`app_key` は、上記の Fleet Automation と同様、ランナーを所有者付きとして登録します。アプリケーションキーには `on_prem_runner_write` スコープが必要です。 + +Agent を再起動して、構成を適用します。 + +```powershell +Restart-Service -Force datadogagent +``` + +Agent の再起動後、[プライベートアクションランナー][1] に移動して、ランナーがリストにあることを確認します。 + +ホストプロセスは**ノード Agent** ランナーを実行します。Cluster Agent でランナーを実行するには、Kubernetes (Helm) または Kubernetes (Operator) タブを使用します。 + +[1]: https://app.datadoghq.com/actions/action-catalog + +{{% /tab %}} +{{% tab "Kubernetes (Helm)" %}} + +Datadog Helm チャートでは、以下の 2 か所でランナーを有効にできます。 + +- サイドカーコンテナとしての**ノード Agent** ランナー。ノード Agent ランナーは **Linux 専用**です。 +- プロセス内での **Cluster Agent** ランナー。Cluster Agent ランナーは Helm または Operator を通じてのみ利用可能であり (スタンドアロンバイナリはありません)、Cluster Agent レプリカ間で ID が調整されるようにリーダー選出が必要です。 + +[組織の設定][1] でプライベートアクションランナー機能を持つ API キーを作成し、チャートが `apiKeyExistingSecret` を通じて読み取る Kubernetes シークレットに保存します。 + +```bash +kubectl create secret generic datadog-secret \ + --from-literal api-key= +``` + +この例では、ランナーを**所有者なし** (`apiKeyOnlyEnrollment: true`、API キーのみを使用) として登録します。これにより、実行ポリシーで認証されます。その他の登録オプションや所有権の仕組みについては、[登録と所有権][2] を参照してください。 + +Helm 設定では、`privateActionRunner.*` キーを camelCase で使用します。`values.yaml` を作成します。 + +```yaml +datadog: + apiKeyExistingSecret: datadog-secret + site: {{< region-param key=dd_site >}} + clusterName: + remoteConfiguration: + enabled: true + privateActionRunner: + enabled: true + apiKeyOnlyEnrollment: true + actionsAllowlist: + - "com.datadoghq.remoteaction.*" + - "com.datadoghq.script.*" +clusterAgent: + enabled: true + privateActionRunner: + enabled: true + apiKeyOnlyEnrollment: true + actionsAllowlist: + - "com.datadoghq.kubernetes.*" + - "com.datadoghq.script.*" +``` + +利用可能なすべてのランナーコンフィギュレーションオプションについては、Helm チャートの [`datadog.privateActionRunner`][3] および [`clusterAgent.privateActionRunner`][4] を参照してください。チャートのインストール: + +```bash +helm repo add datadog https://helm.datadoghq.com +helm repo update +helm install datadog-agent datadog/datadog -f values.yaml +``` + +インストール後、[プライベートアクションランナー][5] に移動して、ランナーがリストにあることを確認します。 + +[1]: https://app.datadoghq.com/organization-settings/api-keys +[2]: /ja/actions/private_actions/enroll_runner/ +[3]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml#L523 +[4]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml#L1842 +[5]: https://app.datadoghq.com/actions/action-catalog + +{{% /tab %}} +{{% tab "Kubernetes (Operator)" %}} + +Datadog Operator は、`DatadogAgent` リソースのアノテーションを通じてランナーを有効にします。`-configdata` アノテーション内のランナー構成では、snake_case の `private_action_runner.*` キーを使用します。Operator は、ノード Agent ランナーとインプロセス Cluster Agent ランナーの両方を有効にできます。 + +[組織の設定][1] でプライベートアクションランナー機能を持つ API キーを作成し、`DatadogAgent` リソースがその `credentials` を通じて読み取る Kubernetes シークレットに保存します。 + +```bash +kubectl create secret generic datadog-secret \ + --from-literal api-key= +``` + +この例では、ランナーを**所有者なし** (`api_key_only_enrollment: true`、API キーのみを使用) として登録します。これにより、実行ポリシーで認証されます。その他の登録オプションや所有権の仕組みについては、[登録と所有権][2] を参照してください。 + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog + annotations: + agent.datadoghq.com/private-action-runner-enabled: "true" + agent.datadoghq.com/private-action-runner-configdata: | + private_action_runner: + enabled: true + api_key_only_enrollment: true + actions_allowlist: + - "com.datadoghq.remoteaction.*" + - "com.datadoghq.script.*" + cluster-agent.datadoghq.com/private-action-runner-enabled: "true" + cluster-agent.datadoghq.com/private-action-runner-configdata: | + private_action_runner: + enabled: true + api_key_only_enrollment: true + actions_allowlist: + - "com.datadoghq.kubernetes.*" + - "com.datadoghq.script.*" +spec: + global: + clusterName: + site: {{< region-param key=dd_site >}} + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key +``` + +マニフェストを適用します。 + +```bash +kubectl apply -f datadog-agent.yaml +``` + +Helm と同様、Cluster Agent ランナーにはリーダー選出が必要であり、ノード Agent ランナーは Linux 専用です。マニフェストを適用した後、[プライベートアクションランナー][3] に移動して、ランナーがリストにあることを確認します。 + +[1]: https://app.datadoghq.com/organization-settings/api-keys +[2]: /ja/actions/private_actions/enroll_runner/ +[3]: https://app.datadoghq.com/actions/action-catalog + +{{% /tab %}} +{{< /tabs >}} + +### 構成フィールド名 {#configuration-field-names} + +ランナーの設定は、各インストール方法の標準的な Datadog Agent 構成規則に従います。 +- ホスト上の環境変数。 +- Helm の `privateActionRunner` の下の CamelCase キー。 +- Operator の `private_action_runner` の下の Snake_case キー。 + +3 つのすべてのインストール方法にわたるフィールド名の対応表、および構成キーとデフォルト値の完全なリストについては、[プライベートアクションランナーリファレンス][7] を参照してください。 + +## ランナーを登録する {#enroll-the-runner} + +登録により、ランナーが Datadog 組織に登録され、その**所有権**が設定されます。これにより、認可モデルが決定されます。プライベートアクションランナー機能を持つ API キーで登録された所有者のいないランナーは、[実行ポリシー][5] を使用します。アプリケーションキーで登録された所有者ありランナーは、[コネクション][4] を使用します。モデルは登録時に固定されるため、デプロイする前にどちらを使用するかを決定してください。 + +プロセスの詳細については、[登録と所有権][8] を参照してください。 + +## ランナーを管理する {#manage-the-runner} + +### 許可リストを変更する {#change-the-allowlist} + +Datadog Agent のランナーの許可リストを編集するには、以下の手順を実行します。 + +{{< tabs >}} +{{% tab "Linux" %}} +1. `/etc/datadog-agent/datadog.yaml` の `private_action_runner.actions_allowlist` セクションを編集します。 +1. Agent を再起動します: `sudo systemctl restart datadog-agent`。 +{{% /tab %}} +{{% tab "Windows" %}} +1. `C:\ProgramData\Datadog\datadog.yaml` の `private_action_runner.actions_allowlist` セクションを編集します。 +1. Agent を再起動します: `Restart-Service -Force datadogagent`。 +{{% /tab %}} +{{% tab "Kubernetes (Operator)" %}} +1. 両方の `DatadogAgent` マニフェストアノテーションの `actions_allowlist` を更新します。`agent.datadoghq.com/private-action-runner-configdata` および `cluster-agent.datadoghq.com/private-action-runner-configdata`。 +1. 更新されたマニフェストを適用します。`kubectl apply -f datadog-agent.yaml`。 +{{% /tab %}} +{{% tab "Kubernetes (Helm)" %}} +1. `values.yaml` で `privateActionRunner.actionsAllowlist` (ノード Agent) または `clusterAgent.privateActionRunner.actionsAllowlist` (Cluster Agent) を更新します。 +1. 更新されたチャートを適用します。`helm upgrade datadog-agent datadog/datadog -f values.yaml`。 +{{% /tab %}} +{{< /tabs >}} + +### 非アクティブなランナーの自動削除 {#automatic-deletion-of-inactive-runners} + +未使用のリソースを解放するため、Datadog は API キーのみ (所有者なし) の構成を使用するノード Agent ベースのプライベートアクションランナーを、35 日間非アクティブな状態が続くと自動的に削除します。この自動クリーンアップは、所有者がいるランナーや Cluster Agent ランナーには適用されません。 + +非アクティブが原因でランナーが削除された場合、再起動するとエラーが発生します。インストール手順を繰り返して、ランナーを再登録する必要があります。 + +## ログを使用したデバッグ {#debugging-with-logs} + +{{< tabs >}} +{{% tab "Linux" %}} + +```bash +cat /var/log/datadog/private-action-runner.log +``` + +{{% /tab %}} +{{% tab "Windows" %}} + +```powershell +Get-Content C:\ProgramData\Datadog\logs\private-action-runner.log +``` + +{{% /tab %}} +{{% tab "Kubernetes" %}} + +```bash +kubectl logs -l app.kubernetes.io/component=cluster-agent --tail=1000 | grep private +``` + +{{% /tab %}} +{{< /tabs >}} + +## ランナーを更新する {#update-the-runner} + +Agent のアップグレードに合わせて常に最新の状態に保つため、Datadog Agent のランナーを更新します。 + +{{< tabs >}} +{{% tab "Linux" %}} + +Datadog Agent を最新バージョンにアップグレードします。ランナーは Agent にバンドルされています。 + +```bash +sudo apt-get update && sudo apt-get install datadog-agent +``` + +または RHEL/CentOS の場合: + +```bash +sudo yum update datadog-agent +``` + +アップグレード後に Agent を再起動します。 + +```bash +sudo systemctl restart datadog-agent +``` + +詳細なアップグレード手順については、[Agent v7 へのアップグレード][1] を参照してください。 + +[1]: /ja/agent/versions/upgrade_to_agent_v7/ + +{{% /tab %}} +{{% tab "Windows" %}} + +[Datadog Agent ダウンロードページ][1] から最新の Agent MSI インストーラーをダウンロードして実行するか、PowerShell を使用します。 + +```powershell +# Download the latest installer +Invoke-WebRequest -Uri "https://s3.amazonaws.com/ddagent-windows-stable/ddagent-cli-latest.msi" -OutFile ddagent-cli-latest.msi + +# Run the installer +Start-Process -Wait -PassThru msiexec -ArgumentList '/qn /i ddagent-cli-latest.msi' +``` + +アップグレード後に Agent を再起動します。 + +```powershell +Restart-Service -Force datadogagent +``` + +[1]: https://app.datadoghq.com/account/settings#agent/windows + +{{% /tab %}} +{{% tab "Kubernetes (Operator)" %}} + +`DatadogAgent` マニフェスト内の Datadog Operator および Agent イメージバージョンを更新します。 + +1. Datadog Operator を更新します。 + + ```bash + helm repo update + helm upgrade datadog-operator datadog/datadog-operator \ + --set image.repository=registry.datadoghq.com/operator \ + --set image.tag=latest + ``` + + 特定のバージョンを固定できます。利用可能なタグを参照するには、[Docker Hub][1] を使用します。 + +1. `datadog-agent.yaml`マニフェスト内の Agent イメージバージョンを更新します。 + + ```yaml + override: + nodeAgent: + image: + name: registry.datadoghq.com/agent: + clusterAgent: + image: + name: registry.datadoghq.com/cluster-agent: + ``` + +1. 更新されたマニフェストを適用します。`kubectl apply -f datadog-agent.yaml`。 +1. 更新を確認します。 + + ```bash + kubectl get pods + kubectl logs -l app.kubernetes.io/component=cluster-agent --tail=100 | grep private + ``` + +Cluster Agent ランナーは、共有 Kubernetes シークレットに ID を保存するため、更新後もその ID を保持します。ノード Agent ランナーは ID をファイルに保存します。そのパスが永続ボリュームによってバックアップされていない場合、更新によって ID が消去され、ランナーが再登録を強制される可能性があります。[Kubernetes 上の ID ストレージ][2] を参照してください。 + +[1]: https://hub.docker.com/r/datadog/operator/tags +[2]: /ja/actions/private_actions/enroll_runner/#identity-storage-on-kubernetes + +{{% /tab %}} +{{% tab "Kubernetes (Helm)" %}} + +ランナーの更新は、標準の Datadog Agent Helm チャートアップグレードプロセスの一部です。 + +```bash +helm repo update +helm upgrade datadog-agent datadog/datadog -f values.yaml +``` + +詳細なアップグレード手順については、[Datadog Helm のアップグレード][1] を参照してください。 + +[1]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/README.md#upgrading + +{{% /tab %}} +{{% tab "Terraform (Operator)" %}} + +Terraform 構成内のバージョン変数を更新します。 + +```hcl +locals { + helm_operator_version = "" + agent_version = "" + # ... +} +``` + +変更を適用します。 + +```bash +terraform plan +terraform apply -var="datadog_api_key=" -var="datadog_app_key=" +``` + +{{% /tab %}} +{{< /tabs >}} + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/actions/private_actions/set_up_standalone/ +[2]: /ja/remote_configuration +[3]: https://app.datadoghq.com/fleet/install-agent/latest +[4]: /ja/actions/connections/ +[5]: /ja/actions/private_actions/execution_policies/ +[6]: https://app.datadoghq.com/actions/action-catalog +[7]: /ja/actions/private_actions/reference/ +[8]: /ja/actions/private_actions/enroll_runner/ \ No newline at end of file diff --git a/hugo/content/ja/api/latest/cloud-cost-management/delete-a-unit-cost/index.md b/hugo/content/ja/api/latest/cloud-cost-management/delete-a-unit-cost/index.md new file mode 100644 index 00000000000..e995a3da29a --- /dev/null +++ b/hugo/content/ja/api/latest/cloud-cost-management/delete-a-unit-cost/index.md @@ -0,0 +1,3 @@ +--- +title: 単価を削除してください +--- diff --git a/hugo/content/ja/api/latest/cloud-cost-management/update-a-unit-cost/index.md b/hugo/content/ja/api/latest/cloud-cost-management/update-a-unit-cost/index.md new file mode 100644 index 00000000000..48e50e9b277 --- /dev/null +++ b/hugo/content/ja/api/latest/cloud-cost-management/update-a-unit-cost/index.md @@ -0,0 +1,3 @@ +--- +title: 単価を更新してください +--- diff --git a/hugo/content/ja/api/latest/data-deletion/_index.md b/hugo/content/ja/api/latest/data-deletion/_index.md new file mode 100644 index 00000000000..0304ea5a3d9 --- /dev/null +++ b/hugo/content/ja/api/latest/data-deletion/_index.md @@ -0,0 +1,3 @@ +--- +title: Data Deletion +--- diff --git a/hugo/content/ja/api/latest/dem/search-dem-journeys/index.md b/hugo/content/ja/api/latest/dem/search-dem-journeys/index.md new file mode 100644 index 00000000000..37890792d44 --- /dev/null +++ b/hugo/content/ja/api/latest/dem/search-dem-journeys/index.md @@ -0,0 +1,3 @@ +--- +title: DEMジャーニー検索 +--- diff --git a/hugo/content/ja/api/latest/llm-observability/create-an-agent-observability-project/index.md b/hugo/content/ja/api/latest/llm-observability/create-an-agent-observability-project/index.md new file mode 100644 index 00000000000..5ea1b0f0610 --- /dev/null +++ b/hugo/content/ja/api/latest/llm-observability/create-an-agent-observability-project/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observabilityプロジェクトを作成します +--- diff --git a/hugo/content/ja/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md b/hugo/content/ja/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md new file mode 100644 index 00000000000..0120fa44cf3 --- /dev/null +++ b/hugo/content/ja/api/latest/llm-observability/update-an-agent-observability-annotation-queue/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observabilityアノテーションキューを更新してください +--- diff --git a/hugo/content/ja/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md b/hugo/content/ja/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md new file mode 100644 index 00000000000..ff211f78f7d --- /dev/null +++ b/hugo/content/ja/api/latest/timeseries-anomaly-investigations/investigate-a-timeseries-anomaly/index.md @@ -0,0 +1,3 @@ +--- +title: 時系列の異常を調査してください。 +--- diff --git a/hugo/content/ja/code_coverage/setup.md b/hugo/content/ja/code_coverage/setup.md new file mode 100644 index 00000000000..ede4743a2cb --- /dev/null +++ b/hugo/content/ja/code_coverage/setup.md @@ -0,0 +1,559 @@ +--- +description: GitHub または GitLab と統合し、権限を設定して PR ゲートを作成し、カバレッジレポートをアップロードして Code Coverage + を構成します。 +further_reading: +- link: /code_coverage + tag: ドキュメント + text: Code Coverage +- link: /code_coverage/configuration + tag: ドキュメント + text: Code Coverage を構成 +- link: /code_coverage/flags + tag: ドキュメント + text: フラグを使用してカバレッジデータを整理 +- link: /code_coverage/data_collected + tag: ドキュメント + text: Code Coverage で収集されるデータについて説明します +- link: /code_coverage/monorepo_support + tag: ドキュメント + text: Code Coverage が大規模なモノレポをどのようにサポートするかについて説明します +title: Code Coverage の設定 +--- +Code Coverage の設定には、以下の手順が含まれます。 + +1. Datadog UI で [ソースコードプロバイダー](#integrate-with-source-code-provider)との統合を構成します。 +2. Datadog でコードカバレッジの[データアクセス権限](#data-access-permissions)を構成します。 +3. 必要に応じて、カバレッジのしきい値に基づいてプルリクエストをブロックする [PR Gate](#pr-gates) を構成します。 +4. CI パイプラインを更新して、[コードカバレッジレポートを Datadog にアップロード](#upload-code-coverage-reports)します。 + +## ソースコードプロバイダーとの統合 {#integrate-with-source-code-provider} + +Code Coverage は以下をサポートしています。 + +{{< tabs >}} +{{% tab "GitHub" %}} + +GitHub リポジトリを Datadog に接続する方法については、[GitHub 統合ドキュメント][1]の手順に従ってください。 + +Code Coverage には、以下の GitHub App 権限が必要です。 +| 権限 | アクセスレベル | 目的 | +|---|---|---| +| コンテンツ | 読み取り | 詳細なカバレッジ UI にソースコードを表示します。| +| プルリクエスト | 書き込み | カバレッジ UI に PR データを表示し、PR コメントを書き込みます。| +| チェック | 書き込み | カバレッジ PR ゲートを作成します。| + +以下の Webhook が必要です。 +| Webhook | 目的 | +|---|---| +| プルリクエスト | PR データの更新を受信します。| +| プルリクエストレビュー | PR データの更新を受信します。| +| プルリクエストレビューコメント | PR データの更新を受信します。| +| プッシュ | Git コミットメタデータを受信します。| + +すべてが正しく構成されている場合、Datadog の[GitHub 統合][2]ページに緑色のチェックマークが表示されます。 +{{< img src="/code_coverage/github_app_success.png" alt="GitHub App 統合の成功チェック" style="width:100%" >}} + +
Datadog 管理の Marketplace App またはデフォルト設定のカスタムアプリを使用している場合、必要な権限と Webhook が含まれています。
+ +[1]: /ja/integrations/github/#github-apps-1 +[2]: https://app.datadoghq.com/integrations/github/configuration +{{% /tab %}} +{{% tab "GitLab" %}} + +GitLab リポジトリを Datadog に接続する方法については、[GitLab ソースコード統合ドキュメント][1]の手順に従ってください。 + +詳細については、[Datadog ソースコード統合ガイド][2]を参照してください。 + +[1]: /ja/integrations/gitlab-source-code/ +[2]: /ja/integrations/guide/source-code-integration/?tab=gitlabsaasonprem#connect-your-git-repositories-to-datadog +{{% /tab %}} +{{% tab "Azure DevOps" %}} + +[Datadog ソースコード統合ガイド][1]の手順に従って、Azure DevOps リポジトリを Datadog に接続します。 +[Azure DevOps ソースコード統合][2]を使用します。 + +[1]: /ja/integrations/guide/source-code-integration/?tab=azuredevopssaasonly#connect-your-git-repositories-to-datadog +[2]: https://app.datadoghq.com/integrations/azure-devops-source-code/ +{{% /tab %}} +{{< /tabs >}} + +ソースコードプロバイダーから収集されるデータの詳細については、[収集されるデータ][1]を参照してください。 + +## データアクセス権限 {#data-access-permissions} + +[Datadog 管理ロール][3]ではなく[カスタムロール][2]を使用している場合は、コードカバレッジデータを表示する必要があるロールに対して、{{< ui >}}Code Coverage Read{{< /ui >}} 権限を必ず有効にしてください。 + +[ロール設定][4]に移動し、必要なロールの {{< ui >}}Edit{{< /ui >}} をクリックして、そのロールに {{< ui >}}Code Coverage Read{{< /ui >}} 権限を追加し、変更を保存します。 + +より詳細な制御を行うには、[Data Access Control][19] を使用して、組織全体ではなくリポジトリごとにコードカバレッジデータを制限します。これにより、ソースパスやテスト名など、カバレッジレポート内の機密情報がチームの境界を越えることを防ぎます。 + +Datadog で、**Organization Settings > Data Access Control** に移動し、Software Delivery と制限したいリポジトリをスコープとする制限付きデータセットを作成します。それを表示する必要があるロールまたはチームにアクセス権を付与します。 + +## PR ゲート{#pr-gates} + +PR カバレッジでゲートを設定したい場合は、次の 2 つの方法のいずれかで PR ゲートのルールを設定できます。 + +- **Datadog UI**: [PR ゲートのルール作成][5]に移動し、合計カバレッジまたはパッチカバレッジでゲートを設定するルールを構成します。 +- **YAML 構成ファイル**: [`code-coverage.datadog.yml`][6] ファイルでゲートを定義します。これにより、リポジトリと一緒にコードとしてゲートを管理できます。 + +プルリクエストが開かれたとき、または更新されたときに、両方のソースのルールが評価されます。YAML ゲートの構文と例については、[構成][6]を参照してください。 + +## コードカバレッジレポートをアップロードする {#upload-code-coverage-reports} + +サポートされている Test Optimization ライブラリを使用して自動的に、または CI 環境で `datadog-ci` CLI を実行して手動で、コードカバレッジレポートファイルを Datadog にアップロードします。 + +コードカバレッジレポートのアップロード中に収集されるデータの詳細については、[収集されるデータ][7]を参照してください。 + +### Test Optimization でレポートを自動的にアップロードする{#upload-reports-automatically-with-test-optimization} + +#### サポートされているライブラリとバージョン {#supported-libraries-and-versions} + +自動コードカバレッジレポートのアップロードは、以下の Test Optimization ライブラリのバージョンでサポートされています。 + +| ライブラリ | 最初にサポートされるバージョン | カバレッジソース | +|---|---|---| +| Ruby `datadog-ci` | `1.27.0` | SimpleCov | +| JavaScript `dd-trace` 5.x | `5.85.0` | Jest、Vitest、または NYC カバレッジ | +| JavaScript `dd-trace` 6.x | `6.0.0` | Jest、Vitest、または NYC カバレッジ | +| Python `ddtrace` | `4.4.0` | `coverage.py` |を使用するデフォルトの pytest プラグイン +| Java `dd-java-agent` | `1.53.0` | JaCoCo | + +これらのバージョン要件は、Test Optimization ライブラリによる自動アップロードにのみ適用されます。 + +#### 自動アップロードを有効にする {#enable-automatic-uploads} + +{{< ui >}}Code Coverage{{< /ui >}} 設定は、組織、リポジトリ、またはテストサービスのレベルで適用できます。 + +1. ライブラリの [Test Optimization のセットアップ][17]を完了してください。 +2. サポートされているバージョンのライブラリにアップグレードしてください。 +3. [{{< ui >}}Code Coverage{{< /ui >}}][8] で {{< ui >}}CI/CD Optimization settings{{< /ui >}} をオンにしてください。 + + {{< img src="/code_coverage/automatic_code_coverage_upload_setting.png" alt="組織レベルの CI/CD Optimization 設定にある Code Coverage のトグル。" style="width:100%" >}} + +4. [サポートされているライブラリとバージョン](#supported-libraries-and-versions)に記載されているソースからカバレッジレポートを生成するテストコマンドを実行してください。 + +コマンドが終了すると、ライブラリがレポートを Datadog にアップロードします。 + +ライブラリによってアップロードされたレポートを整理およびフィルタリングするには、[自動アップロードされたレポートへのフラグの追加][9]を参照してください。このページには、`DD_CODE_COVERAGE_FLAGS` をサポートするライブラリとバージョンが記載されています。 + +### サポートされているカバレッジレポート形式 {#supported-coverage-report-formats} + +Datadog は以下のカバレッジデータ形式をサポートしています。展開して例を確認してください。 + +{{% collapse-content title="LCOV" level="h4" expanded=false id="lcov" %}} +{{< code-block lang="text" >}} +TN: +SF:src/example.c +FN:3,add +FNDA:5,add +FNF:1 +FNH:1 +DA:3,5 +DA:4,5 +DA:5,5 +DA:8,0 +DA:9,0 +LF:5 +LH:3 +BRDA:4,0,0,5 +BRDA:4,0,1,0 +BRF:2 +BRH:1 +end_of_record +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Go Coverprofile" level="h4" expanded=false id="go-coverprofile" %}} +{{< code-block lang="text" >}} +mode: atomic +example/calculator.go:51.148,53.2 1 0 +example/calculator.go:55.190,61.15 3 0 +example/calculator.go:61.15,64.3 2 0 +example/calculator.go:66.2,67.16 2 0 +example/calculator.go:67.16,69.3 1 0 +example/clients/api_client.go:27.87,31.2 3 2 +example/clients/api_client.go:34.85,36.2 1 3 +example/clients/api_client.go:39.126,44.2 4 3 +example/clients/api_client.go:47.106,50.2 2 3 +example/notifications/notifier.go:49.79,51.2 1 3 +example/notifications/notifier.go:60.33,69.2 1 0 +example/notifications/notifier.go:79.131,86.15 3 2 +example/notifications/notifier.go:104.3,104.10 1 3 +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Cobertura XML" level="h4" expanded=false id="cobertura-xml" %}} +{{< code-block lang="xml" >}} + + + + + src + + + + + + + + + + + + + + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Jacoco XML" level="h4" expanded=false id="jacoco-xml" %}} +{{< code-block lang="xml" >}} + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Clover XML" level="h4" expanded=false id="clover-xml" %}} +{{< code-block lang="xml" >}} + + + + + + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="OpenCover XML" level="h4" expanded=false id="opencover-xml" %}} +{{< code-block lang="xml" >}} + + + + + Example.dll + + + + + + + + + + + + + + + + + + + + + + + + + +{{< /code-block >}} +{{% /collapse-content %}} + +{{% collapse-content title="Simplecov JSON" level="h4" expanded=false id="simplecov-json" %}} +{{< code-block lang="json" >}} +{ + "meta": { + "simplecov_version": "0.21.2" + }, + "coverage": { + "/path/to/file1.rb": { + "lines": [ + null, + 1, + 2, + 0, + null, + 1, + null, + null, + null, + "ignored", + "ignored", + "ignored", + null + ], + "branches": [] + }, + "/path/to/file2.rb": { + "lines": [1, 1, null, 0, 1], + "branches": [] + } + } +} +{{< /code-block >}} +{{% /collapse-content %}} + +### datadog-ci CLI をインストールしてください {#install-the-datadog-ci-cli} + +
GitHub Actions を使用している場合は、このインストール手順をスキップできます。以下の GitHub Actions アップロード方法では、専用のアクションを使用して datadog-ci のインストールを自動的に行います。
+ +スタンドアロンバイナリは、[Datadog CI リリース][10]で提供されています。_linux-x64_、_linux-arm64_、_darwin-x64_、_darwin-arm64_ (macOS)、および _win-x64_ (Windows) のアーキテクチャがサポートされています。インストールするには、ターミナルから以下を実行します。 + +{{< tabs >}} +{{% tab "Linux" %}} +{{< code-block lang="shell" >}} +curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci +{{< /code-block >}} + +次に、`datadog-ci` を使用して任意のコマンドを実行します。 +{{< code-block lang="shell" >}} +datadog-ci version +{{< /code-block >}} +{{% /tab %}} + +{{% tab "macOS" %}} +{{< code-block lang="shell" >}} +curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_darwin-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci +{{< /code-block >}} + +次に、`datadog-ci` を使用して任意のコマンドを実行します。 +{{< code-block lang="shell" >}} +datadog-ci version +{{< /code-block >}} +{{% /tab %}} + +{{% tab "Windows" %}} +{{< code-block lang="powershell" >}} +Invoke-WebRequest -Uri "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_win-x64" -OutFile "datadog-ci.exe" +{{< /code-block >}} + +次に、`Start-Process -FilePath "datadog-ci.exe"` を使用して任意のコマンドを実行します。 +{{< code-block lang="powershell" >}} +Start-Process -FilePath "./datadog-ci.exe" -ArgumentList version +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +#### npm {#npm} + +または、CI 環境で Node.js が利用可能な場合は、`npm` を使用して [`datadog-ci`][11] CLI をグローバルにインストールします。 + +{{< code-block lang="shell" >}} +npm install -g @datadog/datadog-ci +{{< /code-block >}} + +#### Docker イメージ {#docker-image} + +または、[Datadog CI Docker イメージ][12]に基づくコンテナで実行するように CI ジョブを更新することもできます。 +このイメージには `datadog-ci` がプリインストールされており、すぐに使用できます。 + +### カバレッジレポートのアップロード{#uploading-coverage-reports} + +
+Datadog は、同じコミットに対するすべてのレポートをバックエンドで自動的に集約します。アップロード前にカバレッジレポートをマージする必要はありません。 +
+ +コードカバレッジレポートを Datadog にアップロードするには、次のコマンドを実行します。有効な [Datadog API キー][13] (`DD_API_KEY`) と、カバレッジレポートファイル自体またはそれらを含むディレクトリへの 1 つ以上のファイルパスを指定します。 + +{{< tabs >}} +{{% tab "GitHub Actions" %}} + +[Datadog Code Coverage Upload][1] GitHub Action を使用します。このアクションは `datadog-ci` を自動的にインストールして実行するため、追加のセットアップは不要です。 + +
+
+steps:
+- name: Upload coverage reports to Datadog
+  uses: DataDog/coverage-upload-github-action@v1
+  with:
+    api_key: ${{ secrets.DD_API_KEY }}
+    site: {{< region-param key="dd_site" >}}
+
+
+ +または、`datadog-ci` がインストールされている場合は、直接実行することもできます。 + +
+
+steps:
+- name: Upload coverage reports to Datadog
+  run: datadog-ci coverage upload .
+  env:
+    DD_API_KEY: ${{ secrets.DD_API_KEY }}
+    DD_SITE: {{< region-param key="dd_site" >}}
+
+
+ +[1]: https://github.com/marketplace/actions/datadog-code-coverage-upload +{{% /tab %}} +{{% tab "GitLab" %}} +
+
+test:
+  stage: test
+  script:
+    - ... # run your tests and generate coverage reports
+    - datadog-ci coverage upload . # make sure to add the DD_API_KEY CI/CD variable
+
+
+{{% /tab %}} +{{% tab "Azure Pipelines" %}} + +- script: datadog-ci coverage upload --format=clover coverage/clover.xml + displayName: 'Upload coverage to Datadog' + env: + DD_API_KEY: $(DD_API_KEY) + DD_SITE: 'datadoghq.com' + +{{% /tab %}} +{{< /tabs >}} + +このコマンドは、指定されたディレクトリを再帰的に検索してサポートされているカバレッジレポートファイルを探すため、通常は現在のディレクトリ (`.`) を指定するだけで十分です。 +[`datadog-ci` ドキュメント][14]で `datadog-ci coverage upload` コマンドの詳細を参照してください。 + +コードカバレッジレポートのアップロードが完了するとすぐに、Datadog はコードカバレッジのパーセンテージ値を含む PR コメントを追加します。コメントにファイルごとの合計カバレッジとパッチカバレッジの内訳を追加するには、[PR コメント][21]を参照してください。 +また、Datadog の [Code Coverage ページ][15]では、プルリクエストごとに集計されたカバレッジデータを表示でき、個々のファイルやコード行を調査することもできます。 + +{{< img src="/code_coverage/pr_details.png" text="Code Coverage PR details page in Datadog" style="width:100%" >}} + +## トラブルシューティング{#troubleshooting} + +### カバレッジアップロードコマンドがカバレッジレポートファイルを検出しない {#coverage-upload-command-does-not-detect-coverage-report-files} + +`datadog-ci coverage upload` コマンドは、ファイル名や拡張子などのヒューリスティックを使用して、指定されたディレクトリ内のサポートされているカバレッジレポートファイルを自動的に検出します。 +カバレッジレポートファイルが想定されるパターンと一致しない場合、コマンドがそれらを自動的に検出できないことがあります。その場合は、レポート形式を指定し、ファイルパスを位置引数として指定してください。たとえば、次のようにします。 + +{{< code-block lang="shell" >}} +datadog-ci coverage upload --format=lcov \ + src/coverage-reports/unit-tests/coverage.info \ + src/coverage-reports/e2e-tests/coverage.info +{{< /code-block >}} + +### カバレッジアップロードが「Format could not be detected」エラーで失敗する {#coverage-upload-fails-with-format-could-not-be-detected-error} + +`datadog-ci coverage upload` コマンドは、カバレッジレポートファイルの内容とファイル拡張子に基づいて、その形式を自動的に検出します。 +コマンドが以下のエラーで失敗する場合、 + +``` +Invalid coverage report file [...]: format could not be detected +``` +以下のように、`--format` オプションを使用して形式を明示的に指定してください。 + +{{< code-block lang="shell" >}} +datadog-ci coverage upload --format=cobertura reports/cobertura.xml +{{< /code-block >}} + +### カバレッジアップロードで「Could not sync git metadata」エラーが出力される {#coverage-upload-outputs-could-not-sync-git-metadata-error} + +Git メタデータのアップロードは、CI プロバイダーを Datadog と直接統合できない場合にのみ必要です。 +Datadog GitHub アプリや GitLab 統合などの[ソースコードプロバイダー統合][18]を使用している場合は、以下のように `--skip-git-metadata-upload=1` フラグを `datadog-ci coverage upload` コマンドに渡すことで、Git メタデータのアップロードを無効にできます。 + +{{< code-block lang="shell" >}} +datadog-ci coverage upload --skip-git-metadata-upload=1 . +{{< /code-block >}} + +### Datadog UI の PR ビューに変更されたファイルが表示されない {#datadog-ui-does-not-show-changed-files-in-the-pr-view} + +デフォルトでは、「Changed files」テーブルには、アップロードされたカバレッジレポートに存在する実行可能なソースコードファイルのみが含まれます。 +テーブルヘッダーで {{< ui >}}Non-executable files{{< /ui >}} または {{< ui >}}All{{< /ui >}} を選択すると、実行可能かどうかにかかわらず、PR で変更されたすべてのファイルが表示されます。 + +{{< img src="/code_coverage/non_executable_files.png" text="In Changed files, you have the option to select Non-executable on the table header" style="width:100%" >}} + +ソースコードファイルが誤って実行不可としてマークされている場合、アップロードされたカバレッジレポートから漏れている可能性があります。 +関連するすべてのレポートをアップロードしていることを確認し、カバレッジツールの設定を再確認して、該当するすべてのファイルに対してカバレッジデータが収集されていることを確認してください。 + +テストソースは、カバレッジを測定する本番コードベースの一部ではないため、実行可能なファイルとはみなされません。 + +### Datadog UI に誤ったファイルパスが表示される {#datadog-ui-shows-incorrect-file-paths} + +Code Coverage は、カバレッジレポート内のファイルパスが、絶対パスまたはリポジトリルートからの相対パスであることを前提としています。 +レポート内のパスがリポジトリ内の別のディレクトリからの相対パスである場合は、`datadog-ci coverage upload` コマンドを実行する際に `--base-path` オプションを使用して、正しいベースパス (リポジトリルートからの相対パス) を次のように指定してください。 + +{{< code-block lang="shell" >}} +datadog-ci coverage upload --base-path=frontend/src . +{{< /code-block >}} + +### 実行不可能な行による不正確なカバレッジ {#inaccurate-coverage-from-non-executable-lines} + +一部のカバレッジツールは、実行不可能な行 (コメント、空白行、閉じ括弧など) をレポートに含め、それらを未カバレッジとしてカウントします。これにより、カバレッジ率が低下し、決して実行されない行に対して誤ったネガティブ (偽陰性) が発生する可能性があります。 + +アップロード中、CLI はソースファイルを自動的にスキャンしてこれらの実行不可能な行を特定し、カバレッジ計算から除外できるようにします。 + +ファイル修正は、Go、Kotlin、C/C++、Swift、Objective-C、および PHP の各言語をサポートしています。 + +この動作は、以下のオプションで制御できます。 + +- `--disable-file-fixes`: ファイル修正の生成を完全に無効にします。 +- `--file-fixes-search-path `: ソースファイルのスキャンに使用するルートディレクトリを上書きします。デフォルトでは、リポジトリのルートが使用されます。これはモノレポの場合や、カバレッジレポートがコードベースのサブセットのみを対象としている場合に便利です。スキャン対象のディレクトリツリーが制限されるため、スキャンが高速化されます。 + +### Datadog UI とカバレッジレポートの値の不一致 {#discrepancy-between-datadog-ui-and-coverage-report-values} + +Datadog は、同じコミットに対するカバレッジレポートを自動的にマージします。 +その結果、Datadog UI に表示されるカバレッジ率が、個々のカバレッジレポートの値と異なる場合があります。特に、それらのレポートに重複するソースコードファイルのエントリが含まれている場合に発生します。 + +Datadog にアップロードする前に外部ツール ([ReportGenerator][16]など) を使用してカバレッジレポートをマージする場合は、 +マージされたレポートにソースコードファイルの重複エントリが含まれないようにしてください。 +Datadog はレポート間で重複するファイルを排除 (デデュプリケート) します。これにより、元のカバレッジ値と Datadog UI に表示されるマージ後の値との間に差異が生じる可能性があります。 + +レポートがどのようにマージされ、各行のステータスがどのようにカウントされるかの詳細については、[Code Coverage Calculation][20] を参照してください。 + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/code_coverage/data_collected/#source-code-provider-integration +[2]: /ja/account_management/rbac/permissions/#custom-roles +[3]: /ja/account_management/rbac/permissions/#managed-roles +[4]: https://app.datadoghq.com/organization-settings/roles +[5]: https://app.datadoghq.com/ci/pr-gates/rule/create?dataSource=code_coverage +[6]: /ja/code_coverage/configuration#pr-gates +[7]: /ja/code_coverage/data_collected/#code-coverage-report-upload +[8]: https://app.datadoghq.com/ci/settings/ci-cd/repositories?tab=organization +[9]: /ja/code_coverage/flags#add-flags-to-automatically-uploaded-reports +[10]: https://github.com/DataDog/datadog-ci/releases +[11]: https://www.npmjs.com/package/@datadog/datadog-ci +[12]: https://hub.docker.com/r/datadog/ci +[13]: https://app.datadoghq.com/organization-settings/api-keys +[14]: https://github.com/DataDog/datadog-ci/tree/master/packages/plugin-coverage +[15]: https://app.datadoghq.com/ci/code-coverage +[16]: https://reportgenerator.io/ +[17]: /ja/tests/setup/ +[18]: /ja/code_coverage/setup/#integrate-with-source-code-provider +[19]: https://app.datadoghq.com/organization-settings/data-access-controls +[20]: /ja/code_coverage/coverage_calculation +[21]: /ja/code_coverage/configuration#pr-comments \ No newline at end of file diff --git a/hugo/content/ja/data_security/data_retention_periods.md b/hugo/content/ja/data_security/data_retention_periods.md index 4fff2fa5ce0..535d9d52b66 100644 --- a/hugo/content/ja/data_security/data_retention_periods.md +++ b/hugo/content/ja/data_security/data_retention_periods.md @@ -6,240 +6,242 @@ aliases: - /ja/developers/faq/data-collection-resolution-retention/ - /ja/developers/guide/data-collection-resolution-retention attributes: -- data_type: '- **Errors**: 15 days +- data_type: '- **エラー**: 15 日間 - - **Indexed spans**: 15 or 30 days, determined by customer plan + - **インデックス化されたスパン**: 15 日間または 30 日間 (お客様のプランによって決まります) - - **Services/resources statistics**: 30 days + - **サービス/リソース統計**: 30 日間 - - **Viewed traces**: Retained for the duration of the account + - **表示されたトレース**: アカウントの有効期間中保持されます ' product: APM -- data_type: '- **Security signals**: 15 months +- data_type: '- **セキュリティシグナル**: 15 か月間 - - **Spans**: 90 days + - **スパン**: 90 日間 ' product: App and API Protection -- data_type: '- **Audit logs (Audit Trail enabled)**: 90 days +- data_type: '- **監査ログ (Audit Trail が有効な場合)**: 90 日間 - - **Audit logs (Audit Trail disabled)**: 7 days + - **監査ログ (Audit Trail が無効な場合)**: 7 日間 ' product: Audit Trail -- data_type: '- **Messages**: 15 months +- data_type: '- **メッセージ**: 15 か月間 ' - product: Bits AI Assistant -- data_type: '- **Source Code**: 7 days + product: Bits Chat +- data_type: '- **ソースコード**: 7 日間 ' - product: Bits AI Dev Agent -- data_type: '- **Investigations**: Retained for the duration of the account + product: Bits Code +- data_type: '- **調査**: アカウントの有効期間中保持されます ' - product: Bits AI SRE -- data_type: '- **Session, View, Action, and Error Events**: 30 days + product: Bits Investigation +- data_type: '- **セッション、ビュー、アクション、エラーイベント**: 30 日間 - - **Resource, Long Task, and Vitals Events**: 15 Days + - **リソース、ロングタスク、バイタルイベント**: 15日間 ' product: Browser RUM -- data_type: '- **Cases**: Retained for the duration of the account +- data_type: '- **ケース**: アカウントの有効期間中保持されます ' - product: Case Management -- data_type: '- **Deployments**: 30 days + product: Work Management +- data_type: '- **デプロイメント**: 30 日間 ' product: CD Visibility -- data_type: '- **Pipelines, stages, jobs, setups, commands**: 15 months +- data_type: '- **パイプライン、ステージ、ジョブ、セットアップ、コマンド**: 15 か月間 ' product: CI Pipeline Visibility -- data_type: '- **Recommendations**: 90 days +- data_type: '- **コストメトリクス**: 15 か月間 + + - **推奨事項**: 90 日間 ' product: Cloud Cost Management -- data_type: '- **Findings and resolved vulnerabilities**: 15 months +- data_type: '- **検出結果および解決済みの脆弱性**: 15 か月間 ' product: Cloud Security -- data_type: '- **Signals**: 15 months +- data_type: '- **シグナル**: 15 か月間 - - **Detections, notifications, suppressions**: Retained for the duration of the - account + - **検出、通知、抑制**: アカウントの有効期間中保持されます ' product: Cloud SIEM -- data_type: '- **Events**: 90 days +- data_type: '- **イベント**: 90 日間 - - **Security signals**: 15 months + - **セキュリティシグナル**: 15 か月間 ' product: Workload Protection -- data_type: '- **Scans**: 15 months +- data_type: '- **スキャン**: 15 か月間 ' product: Code Security SAST -- data_type: '- **Detected vulnerabilities**: 15 months +- data_type: '- **検出された脆弱性**: 15 か月間 ' product: Code Security IAST -- data_type: '- **Container metadata**: 2 hours +- data_type: '- **コンテナメタデータ**: 2 時間 - - **Live processes and containers**: 36 hours + - **ライブプロセスとコンテナ**: 36 時間 - - **YAML definitions**: 7 days + - **YAML 定義**: 7 日間 ' product: Container and Process Monitoring -- data_type: '- **Individual profiles (not opened in the UI)**: 8 days +- data_type: '- **フレームグラフ、コールグラフ、スレッドタイムライン**: 8 日間 + + - **ノートブックにエクスポートされたフレームグラフ**: 1 年間 - - **Individual profiles (opened in the UI at least once)**: 1 year + - **UI で少なくとも 1 回開かれた個別のプロファイル**: 1 年間 - - **Profile metrics**: 90 days + - **プロファイルメトリクス**: 30 日間 ' product: Continuous Profiler -- data_type: '- **Batch results**: 2 months +- data_type: '- **バッチ結果**: 2 か月間 - - **Test results**: 2 months + - **テスト結果**: 2 か月間 ' product: Continuous Testing -- data_type: '- **Job traces**: 90 days +- data_type: '- **ジョブトレース**: 90 日間 ' product: 'Data Observability: Jobs Monitoring' -- data_type: '- **Query samples**: 15 days +- data_type: '- **クエリサンプル**: 15 日間 - - **Query metrics**: 15 months + - **クエリメトリクス**: 15 か月間 ' product: Database Monitoring -- data_type: '- **Dashboards, Notebooks, Monitors**: Retained for the duration of - the account +- data_type: '- **ダッシュボード、ノートブック、モニター**: アカウントの有効期間中保持されます ' product: Datadog App -- data_type: '- **Deployments**: 2 years +- data_type: '- **デプロイメント**: 2 年間 ' product: DORA Metrics -- data_type: '- **Error samples**: 30 days +- data_type: '- **エラーサンプル**: 30 日間 - - **Issues**: 1 year after last activity + - **問題**: 最終アクティビティから 1 年間 ' product: Error Tracking -- data_type: '- **Events**: 15 months +- data_type: '- **イベント**: 15 か月間 ' product: Event Management -- data_type: '- **Incidents**: Retained for the duration of the account +- data_type: '- **インシデント**: アカウントの有効期間中保持されます ' product: Incident Management -- data_type: '- **Production Traces and spans**: 15 (default), 30, 60, or 90 days, - determined by customer plan +- data_type: '- **本番トレースおよびスパン**: 15 日間 (デフォルト)、30 日間、60 日間、または 90 日間 (お客様のプランによって決まります) - - **Experiments Traces and spans**: 15 (default), 90, 180, 270, 365 days, determined - by customer plan + - **実験トレースおよびスパン**: 15 日間 (デフォルト)、90 日間、180 日間、270 日間、365 日間 (お客様のプランによって決まります) - - **Datasets**: 3 years + - **データセット**: 3 年間 ' - product: LLM Observability -- data_type: '- **Logs**: Determined by customer plan + product: Agent Observability +- data_type: '- **ログ**: お客様のプランによって決まります + + - **Sensitive Data Scanner のサンプルログ**: 7 日間 ' product: Log Management -- data_type: '- **Tags and values**: 15 months +- data_type: '- **タグおよび値**: 15 か月間 ' product: Metrics -- data_type: '- **Test results (not displayed in UI)**: 2 months +- data_type: '- **テスト結果 (UI には表示されない)**: 2 か月間 - - **Test results (displayed in UI)**: 15 months + - **テスト結果 (UI に表示される)**: 15 か月間 - - **Mobile application binaries**: Retained for the duration of the account + - **モバイルアプリケーションバイナリ**: アカウントの有効期間中保持されます ' product: Mobile App Testing -- data_type: '- **Session, View, Action, and Error Events**: 30 days +- data_type: '- **セッション、ビュー、アクション、エラーイベント**: 30 日間 - - **Resource, Long Task, and Vitals Events**: 15 Days + - **リソース、ロングタスク、バイタルイベント**: 15日間 ' product: Mobile RUM -- data_type: '- **NetFlow**: 15, 30, 60, or 90 days, determined by customer plan +- data_type: '- **NetFlow**: 15、30、60、または 90 日間 (お客様のプランによって決まります) - - **SNMP traps**: Determined by customer plan, default to 15 days + - **SNMP トラップ**: お客様のプランによって決まります (デフォルトは 15 日間) ' product: Network Device Monitoring -- data_type: '- **Network traffic**: 14 days +- data_type: '- **ネットワークトラフィック**: 14 日間 ' product: Cloud Network Monitoring -- data_type: '- **Network Path Tests**: 30 days +- data_type: '- **Network Path テスト**: 30 日間 ' product: Network Path -- data_type: '- **Events**: 15 months +- data_type: '- **イベント**: 15 か月間 - - **User Profiles**: 15 months, or 30 days if Product - Analytics is not enabled + - **ユーザープロファイル**: 15 か月間。Product + Analytics が有効でない場合は 30 日間 ' product: Product Analytics -- data_type: '- **Gate evaluations**: 30 days +- data_type: '- **ゲート評価**: 30 日間 ' - product: PR Gates -- data_type: '- **Tables**: Retained for the duration of the account + product: Quality Gates +- data_type: '- **テーブル**: アカウントの有効期間中保持されます ' product: Reference Tables -- data_type: '- **Service metadata**: Retained for the duration of the account +- data_type: '- **サービスメタデータ**: アカウントの有効期間中保持されます ' product: Service Catalog -- data_type: '- **SLO results**: 15 months +- data_type: '- **SLO 結果**: 15 か月間 ' product: Service Level Objectives -- data_type: '- **Replays (extension option in UI is unchecked)**: 30 days +- data_type: '- **リプレイ (UI の拡張機能オプションがオフ)**: 30 日間 - - **Replays (extension option in UI is checked)**: 15 months + - **リプレイ (UI の拡張機能オプションがオン)**: 15 か月間 ' product: Session Replay -- data_type: '- **Detected vulnerabilities**: 15 months +- data_type: '- **検出された脆弱性**: 15 か月間 ' product: Software Composition Analysis (SCA) -- data_type: '- **Source Code**: 7 days +- data_type: '- **ソースコード**: 7 日間 ' product: Source Code Integration -- data_type: '- **Test results**: 15 months +- data_type: '- **テスト結果**: 15 か月間 ' product: Synthetics -- data_type: '- **Tests**: 3 months +- data_type: '- **テスト**: 3 か月間 ' product: Test Visibility & Intelligent Test Runner -- data_type: '- **Workflows**: 30 days +- data_type: '- **ワークフロー**: 30 日間 ' product: Workflow Automation content: 以下のテーブルは、データタイプおよび製品ごとのデフォルトのデータ保持期間を示しています。キーワードや説明文で検索して、関心のあるデータタイプや製品を見つけることもできます。収集間隔および最小解決に関する情報については、[Datadog - データ収集と解決](/extend/guide/data-collection-resolution) を参照してください。サポートが必要な場合は、[Datadog - サポート](/help) にお問い合わせください。 + データ収集と解決] (/extend/guide/data-collection-resolution) を参照してください。サポートが必要な場合は、[Datadog + サポート] (/help) にお問い合わせください。 disable_sidebar: true filter_all: All further_reading: diff --git a/hugo/content/ja/delivery_performance/dora_metrics/_index.md b/hugo/content/ja/delivery_performance/dora_metrics/_index.md new file mode 100644 index 00000000000..6dbe8182d18 --- /dev/null +++ b/hugo/content/ja/delivery_performance/dora_metrics/_index.md @@ -0,0 +1,104 @@ +--- +aliases: +- /ja/continuous_integration/dora_metrics +- /ja/dora_metrics/ +description: DORA Metrics を使用して組織のソフトウェアデリバリープロセスを測定および改善する方法を学びます。 +further_reading: +- link: /delivery_performance/dora_metrics/calculation/ + tag: ドキュメント + text: Datadog での DORA Metrics の計算方法について +- link: /continuous_delivery/deployments + tag: ドキュメント + text: Deployment Visibility について +- link: /events + tag: ドキュメント + text: Event Management について +- link: /monitors/types/metric + tag: ドキュメント + text: メトリクスモニターについて +- link: /catalog + tag: ドキュメント + text: カタログについて +- link: https://www.datadoghq.com/blog/platform-engineering-metrics/ + tag: ブログ + text: プラットフォームエンジニアリングチームのための成功メトリクス +- link: https://www.datadoghq.com/blog/dora-metrics-software-delivery/ + tag: ブログ + text: DORA Metrics を活用してソフトウェアデリバリーを改善するためのベストプラクティス +- link: https://www.datadoghq.com/blog/datadog-dora-metrics/ + tag: ブログ + text: Datadog DORA Metrics でソフトウェアデリバリーの成功を促進する 3 つの方法 +- link: https://www.datadoghq.com/blog/devsecops-2026-study-learnings + tag: ブログ + text: 2026 年版 State of DevSecOps 調査の主なポイント +- link: https://app.datadoghq.com/release-notes?category=Software%20Delivery + tag: リリースノート + text: Software Delivery の最新リリースをチェック!(アプリログインが必要です) +is_beta: true +title: DORA Metrics +--- +## 概要 {#overview} + +DevOps Research and Assessment (DORA) Metricsは、ソフトウェア開発の速度と安定性を示す [4 つの主要なメトリクス][1]です。 + +デプロイ頻度 +: 組織が本番環境へのリリースを成功させる頻度。 + +変更リードタイム +: コミットが本番環境に反映されるまでにかかる時間。 + +変更障害率 +: 失敗して即時の介入が必要となるデプロイの割合。 + +デプロイ失敗からの復旧時間 +: 失敗して即時の介入が必要となるデプロイから復旧するまでにかかる時間。 + +DORA Metrics を定義および追跡することで、チームや組織のソフトウェアデリバリーのスピードと品質における改善領域を特定できます。 + +## DORA Metrics のセットアップ{#set-up-dora-metrics} + +デプロイイベントを Datadog に送信するためのデータソースの設定を開始するには、[セットアップドキュメント][2]を参照してください。 + +## DORA Metrics の分析{#analyze-dora-metrics} + +デプロイイベントのデータソースをセットアップした後、[{{< ui >}}Software Delivery{{< /ui >}} > {{< ui >}}Delivery Performance{{< /ui >}} > {{< ui >}}DORA Metrics{{< /ui >}}][4] に移動して、各メトリクスの改善点や回帰を特定します。また、チーム、サービス、リポジトリ、環境、期間、および[カスタムタグ][8]でメトリクスを集計し、経時的な傾向を比較することもできます。 + +{{< img src="delivery_performance/dora_metrics/dora_ui_3.png" alt="Language カスタムタグでフィルタリングされた DORA Metrics の計算の概要" style="width:100%;" >}} + +{{< ui >}}View Deployments{{< /ui >}} をクリックすると、デプロイイベントのリストを示す新しいタブが開きます。 + +{{< img src="delivery_performance/dora_metrics/deployments_list.png" alt="[Deployments Breakdown] にメトリクスの内訳と関連イベントのリストを表示" style="width:100%;" >}} + +{{< ui >}}View Change Failures{{< /ui >}} をクリックすると、変更障害としてマークされたデプロイイベントのリストを示すサイドパネルが開きます。 + +{{< img src="delivery_performance/dora_metrics/change_failures_list.png" alt="[Change Failures Breakdown] にメトリクスの内訳と関連イベントのリストを表示" style="width:100%;" >}} + +## DORA Metrics データの使用{#use-dora-metrics-data} + +### DORA Metrics ウィジェットのエクスポート{#export-dora-metrics-widgets} +視覚化ウィジェットをダッシュボードやノートブックにエクスポートします。 + +いずれの視覚化も {{< ui >}}Export{{< /ui >}} アイコンをクリックしてダッシュボードやノートブックに追加できます。DORA Metrics によって計算されるメトリクスの詳細については、[データ収集に関するドキュメント][3]を参照してください。 + +### カスタムダッシュボードの作成{#create-custom-dashboards} + +DORA Metrics を使用してカスタムダッシュボードを構築し、コミットやプルリクエストから本番環境へのデプロイに至るまで、デリバリーワークフローをエンドツーエンドで分析します。たとえば、チーム間のコードレビューパフォーマンスを比較して、承認の遅れによってどのチームが停滞しているかを特定し、ワークフローの改善においてどこに優先して投資すべきかを調べます。 + +{{< img src="delivery_performance/dora_metrics/dashboard.png" alt="DORA Metrics のカスタムダッシュボードの例" style="width:100%;" >}} + +ダッシュボードやグラフ内では、カスタムタグは[属性][7]として扱われます。カスタムタグでフィルタリングまたはグループ化するには、そのタグに `@` 記号を付ける必要があります。 + +{{< img src="delivery_performance/dora_metrics/graph_with_custom_tag.png" alt="カスタムタグでグループ化された DORA Metrics のカスタムグラフの例" style="width:100%;" >}} + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://www.datadoghq.com/knowledge-center/dora-metrics/ +[2]: /ja/delivery_performance/dora_metrics/setup/ +[3]: /ja/delivery_performance/dora_metrics/data_collected/ +[4]: https://app.datadoghq.com/ci/dora +[5]: /ja/monitors/types/metric/?tab=threshold +[6]: /ja/monitors/ +[7]: /ja/dashboards/guide/quick-graphs/#graphing-events +[8]: /ja/delivery_performance/dora_metrics/data_collected/#custom-tags \ No newline at end of file diff --git a/hugo/content/ja/delivery_performance/dora_metrics/change_failure_detection/_index.md b/hugo/content/ja/delivery_performance/dora_metrics/change_failure_detection/_index.md new file mode 100644 index 00000000000..d99d9d04e10 --- /dev/null +++ b/hugo/content/ja/delivery_performance/dora_metrics/change_failure_detection/_index.md @@ -0,0 +1,194 @@ +--- +aliases: +- /ja/dora_metrics/change_failure_detection/ +description: ロールバック、リバート PR、カスタム PR フィルターを使用して、DORA Metrics における変更障害検出を構成する方法を学びます。 +further_reading: +- link: /delivery_performance/dora_metrics/ + tag: ドキュメント + text: DORA Metrics について +- link: /delivery_performance/dora_metrics/setup/ + tag: ドキュメント + text: DORA Metrics のデータソースのセットアップ +title: 変更障害検出 +--- +{{< jqmath-vanilla >}} + +## 概要 {#overview} + +Datadog の変更障害検出は、以前に失敗したデプロイを修復するデプロイを自動的に特定します。変更障害を修復デプロイに関連付けることで、デリバリーパフォーマンスの完全なビューを提供し、チームがリリースの速度と運用の安定性のバランスを取るのに役立ちます。 + +**変更障害**とは、本番環境で問題を引き起こし、復旧が必要となるデプロイのことです。変更障害は、次のメトリクスの計算に使用されます。 + +- [変更障害率][2] +: 本番環境で問題を引き起こしたデプロイの割合で、次のように計算されます。 + + $$\\text\"変更障害率\" = \\text\"変更障害数\" / \\text\"総デプロイ数\"$$ + +- [デプロイ失敗からの復旧時間][3] +: デプロイ失敗からロールバックまたはロールフォワードデプロイによる修復までの時間の中央値です。 + +変更障害検出では、2 種類の修復デプロイを識別します。 +- **ロールバック**: 以前にデプロイされたバージョンが再デプロイされたときに自動的に検出されます。 +- **ロールフォワード**: メタデータのパターン (リバート PR やホットフィックスラベルなど) に一致するカスタムルールを通じて検出されます。 + + +## ロールバック {#rollbacks} + +ロールバックは、失敗した変更や不具合のある変更の後にシステムを復旧させるため、以前にデプロイされたバージョンが再デプロイされたときに発生します。 + +### ロールバックによる分類の仕組み {#how-rollback-classification-works} + +デプロイがロールバックとして分類されるのは、以前にデプロイされたバージョンと一致するものの、直前のデプロイとは異なるバージョンをデプロイした場合です。 + +- Git メタデータが存在する場合、その照合はコミット SHA に基づきます。 +- Git メタデータが存在しない場合、その照合はバージョンタグに基づきます。 + +ロールバックが検出されると、ロールバックターゲット (元に戻したバージョン) の後の最初のデプロイが変更障害となります。 + +### 例: ロールバックの検出 {#example-rollback-detection} + +V1 → V2 → V3 → V1 というシーケンスの場合、ロールバックターゲットは元の V1 であるため、V2 が変更障害としてマークされ、V1 がロールバックデプロイとしてマークされます。 + +{{< img src="delivery_performance/dora_metrics/rollback_example.png" alt="検出されたロールバックデプロイの例" style="width:100%;" >}} + +**注**: 同じバージョンを連続して再デプロイすること (例: V1 → V1) は、ロールバックとはみなされません。 + +## ロールフォワード {#rollforwards} + +ロールフォワードは、失敗した変更や不具合のある変更を修正または上書きするために新しいデプロイが行われた場合に発生します。ロールバック (以前のバージョンの再デプロイ) とは異なり、ロールフォワードは問題を修復するために新しいコードをデプロイします。これには、新しいリリースを通じて以前の動作を復元するリバートプルリクエストが含まれる場合があります。 + +ロールフォワードは、デプロイメタデータのパターンに一致するカスタムルールを通じて検出されます。カスタムルールは、[DORA 設定ページ][1]で構成されます。 + +## カスタムルール {#custom-rules} + +リポジトリやリリースのメタデータに基づいて、ロールフォワードデプロイを自動的に分類するカスタムルールを定義できます。ルールは次の 2 つの方法で機能します。 +- **デプロイのリンク**: 共有変数 (PR 番号やバージョンなど) の値を通じてデプロイを照合します。 +- **静的パターン**: 変数を使用せずにメタデータのパターン (ラベルやブランチ名など) を照合します。 + +### 失敗したデプロイにリンクされたルール {#rules-linked-to-failed-deployments} + +これらのルールを使用して、以前に失敗した特定のデプロイにリンクされるロールフォワードデプロイを特定します。これらのルールでは、共有参照を通じてデプロイを照合するために、変数を含む正規表現 (regex) パターンを使用します。 + +次の変数のいずれかを含む正規表現ルールを入力できます。 +| 変数 | 説明 | +|---------------|-----------------------| +| `$pr_title` | PR タイトルに一致 | +| `$pr_number` | PR 番号に一致 | +| `$version` | バージョンタグに一致 | + +#### 変数ベースの分類の仕組み {#how-variable-based-classification-works} + +ルールがデプロイに一致すると、次のアクションが実行されます。 +1. 現在のデプロイから変数値が抽出されます。 +2. 同じ抽出値を持つ以前のデプロイが検索されます。 +3. 現在のデプロイが、その以前のデプロイにリンクされたロールフォワードとしてマークされます。 +4. 以前のデプロイが変更障害としてマークされます。 + +これらのルールは、失敗したデプロイが共有 コミット SHA、バージョンタグ、または PR 参照によって識別できる場合に最も効果的です。 + +#### 例: リバートプルリクエスト {#example-revert-pull-requests} + +リバートプルリクエストは、一般的な復旧パターンです。たとえば、`Revert "Add feature X"` というタイトルの PR は元の PR を参照しています。 + +``` +Revert "$pr_title" +``` + +PR タイトルがこのパターンに一致すると、次のアクションが実行されます。 +1. リバート PR から元の PR タイトル (`$pr_title` の値) が抽出されます。 +2. 元の PR タイトルを含む以前のデプロイが検索されます。 +3. 現在のデプロイ (リバートを含む) がロールフォワードとしてマークされます。 +4. 以前のデプロイが変更障害としてマークされます。 + +**注**: 元の PR が以前のいずれのデプロイにも見つからない場合、または元の PR とそのリバートの両方が同じデプロイにある場合、分類は適用されません。 + +### 静的ルール {#static-rules} + +静的ルールでは、変数を使用せずにメタデータのパターンに基づいてロールフォワードデプロイを分類します。これらのルールは、修復の広範な指標を照合します。 + +特定の種類のメタデータを照合する正規表現ルールを定義できます。次の表に、使用できるパターンの例をいくつか示します。プロセスに合わせて調整することも可能です。 + +| メタデータタイプ | 正規表現パターンの例 | 説明 | +|------------------|------------------------|-------------------------------------| +| **PR タイトル** | `.*rollforward.*` | `rollforward` | を含む PR タイトルに一致 +| **PR ラベル** | `.*hotfix.*` | `hotfix` | を含む PR ラベルに一致 +| **PR ブランチ名** | `recovery/.*` | `recovery/`| で始まるブランチ名に一致 +| **コミットメッセージ** | `^Revert ".*"$ ` | `Revert` で始まり `"`| で終わるコミットメッセージに一致 +| **バージョンタグ** | `.*_hotfix` | `_hotfix` | で終わるバージョンタグに一致 + +#### 静的ルールによる分類の仕組み {#how-static-rule-classification-works} + +静的ルールがデプロイに一致すると、次のアクションが実行されます。 +1. 現在のデプロイがロールフォワードとしてマークされます。 +2. 直前のデプロイが変更障害としてマークされます。 + +ホットフィックスラベル、ブランチプレフィックス、バージョンタグ規約など、広範な修復指標には静的ルールを使用してください。 + + +### デフォルトルール{#default-rules} + +Datadog は、自動的に有効になるデフォルトルールを提供しています。 + +- **リバート PR**: リバートの命名規則 (例: 前の PR を参照する「Revert」) に従う PR タイトルがロールフォワードとして扱われます。元の変更を含む以前のデプロイは、前述の変数ベースのリンクルールを使用して、変更障害としてマークされます。 +- **ホットフィックスインジケーター**:「hotfix」を含む PR ラベル、タイトル、またはブランチ名がロールフォワードとして扱われ、その前のデプロイが変更障害としてマークされます。 + +これらのデフォルトルールは、[DORA Metrics 設定][1]ページで完全に構成可能です。これらは、一般的なシグナルをロールフォワードの可能性が高いアクティビティとして解釈する出発点として意図されています。独自のワークフローを反映させ、時間の経過とともに精度を向上させるために、必要に応じてパターン (命名規則、ラベル、バージョンタグなど) を調整してください。 + +## デプロイステータスの更新{#update-deployment-status} + +自動検出やカスタムルールでほとんどのケースに対応できますが、デプロイのステータスを手動で更新して変更障害としてマークしたり、変更障害を安定としてマークしたりすることも可能です。 + +### デプロイステータスを更新する状況{#when-to-update-deployment-status} + +次のようなシナリオでは、デプロイのステータスを手動で更新することを検討してください。 +- デプロイが本番環境で問題を引き起こしたが、変更障害として検出されなかった場合。 +- デプロイが誤って変更障害として分類された場合 (誤検知)。 +- レポート作成のために、正しいステータスを直ちに反映させる必要がある場合。 + +### API によるステータスの更新{#update-status-through-the-api} + +[DORA Metrics API][4] を使用して、プログラムからデプロイのステータスを更新します。次の例では、デプロイを変更障害としてマークし、ロールバックによる修復にリンクしています。 + +```shell +curl -X PATCH "https://api.datadoghq.com/api/v2/dora/deployment/{deployment_id}" \ +-H "Accept: application/json" \ +-H "Content-Type: application/json" \ +-H "DD-API-KEY: ${DD_API_KEY}" \ +-d @- << EOF +{ + "data": { + "attributes": { + "change_failure": true, + "remediation": { + "id": "eG42zNIkVjM", + "type": "rollback" + } + }, + "id": "z_RwVLi7v4Y", + "type": "dora_deployment_patch_request" + } +} +EOF +``` + +`remediation` フィールドは任意ですが、失敗したデプロイの復旧時間を計算する場合は必須です。 + +### UI によるステータスの更新{#update-status-through-the-ui} + +Datadog UI からデプロイのステータスを更新するには: + +1. {{< ui >}}Software Delivery{{< /ui >}} > {{< ui >}}DORA Metrics{{< /ui >}} に移動し、[{{< ui >}}View Deployments{{< /ui >}}][5] をクリックします。 +2. デプロイをクリックして、デプロイ詳細パネルを開きます。 +3. デプロイ詳細パネルで、ドロップダウンから {{< ui >}}Deployment status{{< /ui >}} を選択し、デプロイを失敗または安定としてマークします。 + +{{< img src="delivery_performance/dora_metrics/deployment_status_update.mp4" alt="Datadog UI からデプロイの変更障害ステータスを更新する" video="true" >}} + +## 参考資料 {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/ci/settings/dora +[2]: /ja/delivery_performance/dora_metrics/calculation/#change-failure-rate +[3]: /ja/delivery_performance/dora_metrics/calculation/#failed-deployment-recovery-time +[4]: /ja/api/latest/dora-metrics/#patch-a-deployment-event +[5]: https://app.datadoghq.com/ci/dora?detail=deployments \ No newline at end of file diff --git a/hugo/content/ja/feature_flags/concepts/_index.md b/hugo/content/ja/feature_flags/concepts/_index.md index 144927a0b4d..e5b3fb80d01 100644 --- a/hugo/content/ja/feature_flags/concepts/_index.md +++ b/hugo/content/ja/feature_flags/concepts/_index.md @@ -1,24 +1,25 @@ --- -description: Datadog Feature Flags の主要な概念と基礎をご確認ください。 -title: 概念 +description: Datadog Feature Flags のコアコンセプトと基本を学びます。 +title: コンセプト --- -Datadog Feature Flags の仕組みと、フラグ、環境、ターゲティング、ガバナンスの構成方法をご確認ください。 +Datadog Feature Flags の動作や、フラグ、環境、ターゲティング、ガバナンスの設定方法を学びます。 {{< whatsnext desc=" " >}} {{< nextlink href="/feature_flags/concepts/environments" >}}環境{{< /nextlink >}} - {{< nextlink href="/feature_flags/concepts/variants_and_flag_types" >}}バリアントとフラグタイプ{{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/variants_and_flag_types" >}}バリアントおよびフラグタイプ{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/evaluation_context" >}}評価コンテキスト{{< /nextlink >}} - {{< nextlink href="/feature_flags/concepts/targeting_rules" >}}ターゲティングルールとフィルター{{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/targeting_rules" >}}ターゲティングルールおよびフィルター{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/targeting_attributes" >}}ターゲティング属性{{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/evaluation_tester" >}}評価テスター{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/scheduled_rollouts" >}}スケジュールされたロールアウト{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/saved_filters" >}}保存済みフィルター{{< /nextlink >}} - {{< nextlink href="/feature_flags/concepts/traffic_splitting" >}}トラフィックの分割とランダム化{{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/traffic_splitting" >}}トラフィックスプリッティングとランダム化{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/distribution_channels" >}}配信チャネル{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/configuration_sources" >}}サーバー SDK 構成ソース{{< /nextlink >}} - {{< nextlink href="/feature_flags/concepts/monthly_flag_configuration_requests" >}}Monthly Flag Configuration Requests (MFCR){{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/monthly_flag_configuration_requests" >}}月間フラグ構成リクエスト (MFCR){{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/flag_history" >}}フラグ履歴{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/flag_graphs" >}}Feature Flag グラフ{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/stale_flags" >}}古くなったフラグ{{< /nextlink >}} - {{< nextlink href="/feature_flags/concepts/permissions" >}}権限と Access Control{{< /nextlink >}} + {{< nextlink href="/feature_flags/concepts/permissions" >}}権限とアクセス制御{{< /nextlink >}} {{< nextlink href="/feature_flags/concepts/approvals" >}}承認{{< /nextlink >}} {{< /whatsnext >}} \ No newline at end of file diff --git a/hugo/content/ja/infrastructure/list.md b/hugo/content/ja/infrastructure/list.md index aa5314043df..43aef90918b 100644 --- a/hugo/content/ja/infrastructure/list.md +++ b/hugo/content/ja/infrastructure/list.md @@ -28,7 +28,7 @@ title: ホストリスト 左側のフィルターパネルを使用してホストのリストを絞り込みます。 -- **My Teams**: トグルをオンにしてチームに関連するホストのみを表示します。 +- **Teams**: [チームフィルター][19]を使用して、選択したTeamsに関連付けられたホストのみを表示します。 - **クイックフィルター**: パネル上部のチェックボックスを使用して、クラウドプロバイダー (AWS、Azure、Google Cloud、Oracle、または Alibaba Cloud)、テレメトリソース (Datadog Agent または OpenTelemetry)、オペレーティングシステム (Windows、Linux、または Darwin)、またはハードウェア (GPU) でフィルタリングします。 - **メトリクスのフィルタリング**: メトリクスを選択し、メトリクス値でホストをフィルタリングする値の範囲を定義します。 - **ファセットの検索**: クラウドプロバイダー、環境、リージョン、リソースタイプ、インスタンスタイプ、OS、OS バージョン、Agent、または Docker バージョンなど、任意のホストプロパティまたはタグでフィルタリングします。 @@ -148,4 +148,5 @@ for host in infra['rows']: [15]: /ja/infrastructure/resource_catalog/#investigate-a-host-or-resource [16]: /ja/getting_started/search/ [17]: https://app.datadoghq.com/reports/v2/overview?metrics=avg%3Aaws.ec2.cpuutilization%2Cavg%3Aazure.vm.percentage_cpu%2Cavg%3Agcp.gce.instance.cpu.utilization%2Cavg%3Asystem.cpu.idle%2Cavg%3Asystem.cpu.iowait%2Cavg%3Asystem.load.norm.15%2Cavg%3Avsphere.cpu.usage%2Cavg%3Avsphere.cpu.usage.avg%2Cavg%3Aalibabacloud.ecs.cpu_utilization.average&with_apps=true&with_sources=true&with_aliases=true&with_meta=true&with_mute_status=true&with_tags=true -[18]: /ja/ddsql_editor/#save-and-share-queries \ No newline at end of file +[18]: /ja/ddsql_editor/#save-and-share-queries +[19]: /ja/account_management/teams/#team-filter \ No newline at end of file diff --git a/hugo/content/ja/llm_observability/guide/_index.md b/hugo/content/ja/llm_observability/guide/_index.md index 9b145ba9995..9efb85bb7e5 100644 --- a/hugo/content/ja/llm_observability/guide/_index.md +++ b/hugo/content/ja/llm_observability/guide/_index.md @@ -1,15 +1,21 @@ --- cascade: algolia: - category: ガイド + category: Guide rank: 20 - subcategory: LLM Observability ガイド + subcategory: Agent Observability Guides disable_toc: true -private: true -title: LLM Observability ガイド +title: Agent Observability ガイド --- - -{{< whatsnext desc="LLM Observability Guides:" >}} - {{< nextlink href="/llm_observability/quickstart" >}}LLM アプリケーションの追跡{{< /nextlink >}} - {{< nextlink href="/llm_observability/submit_evaluations" >}}評価の送信{{< /nextlink >}} +{{< whatsnext desc="Agent Observability ガイド:" >}} + {{< nextlink href="/llm_observability/quickstart/" >}}LLM アプリケーションのトレース{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/trace-an-llm-application-in-aws-lambda" >}}AWS Lambda での LLM アプリケーションのトレース{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/monitor_proxy_services" >}}プロキシおよびゲートウェイサービスのトレース{{< /nextlink >}} + {{< nextlink href="/llm_observability/instrument/agent_observability_and_apm" >}}Agent Observability と APM の使用{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/monitor_mcp_client" >}}MCP クライアントを監視する{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/crewai_guide" >}}Agent Observability 向けの Datadog-CrewAI インテグレーションの使用{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/nextjs_guide" >}}Agent Observability 向けの Next.js アプリケーションのインスツルメンテーション{{< /nextlink >}} + {{< nextlink href="/llm_observability/guide/agent_monitoring" >}}Agent モニタリング{{< /nextlink >}} + {{< nextlink href="/llm_observability/investigate/evaluations/evaluation_developer_guide" >}}評価開発者ガイド: カスタム評価器の構築{{< /nextlink >}} + {{< nextlink href="/llm_observability/build_with_ai/claude_code_skills" >}}Claude Code Skills を使用した LLM アプリケーションの分析{{< /nextlink >}} {{< /whatsnext >}} \ No newline at end of file diff --git a/hugo/content/ja/llm_observability/instrument/sdk.md b/hugo/content/ja/llm_observability/instrument/sdk.md new file mode 100644 index 00000000000..3601bc24ae8 --- /dev/null +++ b/hugo/content/ja/llm_observability/instrument/sdk.md @@ -0,0 +1,3437 @@ +--- +aliases: +- /ja/tracing/llm_observability/sdk/python +- /ja/llm_observability/sdk/python +- /ja/llm_observability/setup/sdk/python +- /ja/llm_observability/setup/sdk/nodejs +- /ja/llm_observability/setup/sdk +- /ja/llm_observability/setup/sdk/java +- /ja/llm_observability/sdk/java +- /ja/llm_observability/sdk/ +- /ja/llm_observability/instrumentation/custom_instrumentation +- /ja/llm_observability/instrument/custom_instrumentation +- /ja/tracing/llm_observability/trace_an_llm_application +- /ja/llm_observability/setup +- /ja/llm_observability/instrumentation/sdk/ +description: Python、Node.js、Java 向けの Agent Observability SDK のリファレンスドキュメントです。自動および手動のインスツルメンテーションについて説明しています。 +further_reading: +- link: https://www.datadoghq.com/blog/llm-prompt-tracking + tag: ブログ + text: Datadog LLM Observability を使用した LLM プロンプトの追跡、比較、最適化 +title: Agent Observability SDK リファレンス +--- +## 概要 {#overview} + +Agent Observability SDK は、LLM アプリケーションの可観測性とインサイトを提供するために、自動インスツルメンテーションおよび手動インスツルメンテーション API を提供します。 + +## セットアップ {#setup} + +### 要件{#requirements} + +- [Datadog API キー][1]。 + +[1]: https://app.datadoghq.com/organization-settings/api-keys + +{{< tabs >}} +{{% tab "Python" %}} +- 最新の `ddtrace` パッケージがインストールされていること (Python 3.7 以降が必要です)。 + ```shell + pip install ddtrace + ``` +{{% /tab %}} + +{{% tab "Node.js" %}} +- 最新の `dd-trace` パッケージがインストールされていること (Node.js 16 以降が必要です)。 + ```shell + npm install dd-trace + ``` + +{{% /tab %}} + +{{% tab "Java" %}} +- 最新の [`dd-trace-java` JAR][1] をダウンロード済みであること。Agent Observability SDK は `dd-trace-java` v1.51.0 以降でサポートされています (Java 8 以降が必要です)。 + +[1]: https://github.com/DataDog/dd-trace-java +{{% /tab %}} +{{< /tabs >}} + +{{% collapse-content title="コマンドラインセットアップ" level="h4" expanded=false id="command-line-setup" %}} + +{{< tabs >}} +{{% tab "Python" %}} +`ddtrace-run` コマンドを使用してアプリケーションを実行し、必要な環境変数を指定することで、Agent Observability を有効にします。 + +**注**: `ddtrace-run` は、すべての Agent Observability インテグレーションを自動的に有効にします。 + +{{< code-block lang="shell">}} +DD_SITE= DD_API_KEY= DD_LLMOBS_ENABLED=1 \ +DD_LLMOBS_ML_APP= ddtrace-run +{{< /code-block >}} + +#### コマンドラインセットアップ用の環境変数{#environment-variables-for-command-line-setup} + +`DD_SITE` +: 必須 - _文字列_ +
LLM データ送信先の Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 + +`DD_LLMOBS_ENABLED` +: 必須 - _整数または文字列_ +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_ML_APP` +: オプション - _文字列_ +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。 +
**注**: バージョン `ddtrace==3.14.0` より前では、これは**必須フィールド**です。 + +`DD_LLMOBS_AGENTLESS_ENABLED` +: オプション - _整数または文字列_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_SAMPLE_RATE` +: オプション - _浮動小数点数_ - **デフォルト**: `1.0` +
Agent Observability によって保持されるトレースの割合。[トレースサンプリング](#trace-sampling)を参照してください。 + +`DD_API_KEY` +: オプション - _文字列_ +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 + +`DD_MCP_CAPTURE_INTENT` +: オプション - _整数または文字列_ - **デフォルト**: `false` +
`1` または `true` に設定すると、呼び出し元のモデルに対してツールを呼び出した理由を説明するよう要求する引数がすべての MCP サーバーツールに追加されます。インテントはツールのスパンに記録されます。 + +[1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment +{{% /tab %}} + + +{{% tab "Node.js" %}} +アプリケーションを `NODE_OPTIONS="--import dd-trace/initialize.mjs"` で実行し、必要な環境変数を指定することで、Agent Observability を有効にします。 + +**注**: `dd-trace/initialize.mjs` は、すべての APM インテグレーションを自動的に有効にします。 + +```shell +DD_SITE= DD_API_KEY= DD_LLMOBS_ENABLED=1 \ +DD_LLMOBS_ML_APP= NODE_OPTIONS="--import dd-trace/initialize.mjs" node +``` + +#### コマンドラインセットアップ用の環境変数{#environment-variables-for-command-line-setup-1} + +`DD_SITE` +: 必須 - _文字列_ +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 + +`DD_LLMOBS_ENABLED` +: 必須 - _整数または文字列_ +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_ML_APP` +: オプション - _文字列_ +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。 +
**注**: バージョン `dd-trace@5.66.0` より前では、これは**必須フィールド**です。 + +`DD_LLMOBS_AGENTLESS_ENABLED` +: オプション - _整数または文字列_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_SAMPLE_RATE` +: オプション - _浮動小数点数_ - **デフォルト**: `1.0` +
Agent Observability によって保持されるトレースの割合。[トレースサンプリング](#trace-sampling)を参照してください。 + +`DD_API_KEY` +: オプション - _文字列_ +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 + +[1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment +{{% /tab %}} +{{% tab "Java" %}} + +Agent Observability を有効にするには、`dd-trace-java` を使用してアプリケーションを実行し、必要なパラメーターを環境変数またはシステムプロパティとして指定します。 + +```shell +DD_SITE= DD_API_KEY= \ +java -javaagent:path/to/your/dd-trace-java-jar/dd-java-agent-SNAPSHOT.jar \ +-Ddd.service=my-app -Ddd.llmobs.enabled=true -Ddd.llmobs.ml.app=my-ml-app -jar path/to/your/app.jar +``` + +#### 環境変数とシステムプロパティ {#environment-variables-and-system-properties} + +次のパラメーターを環境変数 (たとえば、`DD_LLMOBS_ENABLED`) または Java システムプロパティ (たとえば、`dd.llmobs_enabled`) として指定できます。 + +`DD_SITE`または `dd.site` +: 必須 - _文字列_ +
LLM データ送信先の Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 + +`DD_LLMOBS_ENABLED` または `dd.llmobs.enabled` +: 必須 - _整数または文字列_ +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_ML_APP`または `dd.llmobs.ml.app` +: オプション - _文字列_ +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。 +
**注**: `dd-trace-java` のバージョン 1.54.0 より前では、これは**必須フィールド**です。 + +`DD_LLMOBS_AGENTLESS_ENABLED`または `dd.llmobs.agentless.enabled` +: オプション - _整数または文字列_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 + +`DD_API_KEY`または `dd.api.key` +: オプション - _文字列_ +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 + +[1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment +{{% /tab %}} +{{< /tabs >}} + +{{% /collapse-content %}} + +{{% collapse-content title="コード内のセットアップ" level="h4" expanded=false id="in-code-setup" %}} + +[コマンドラインのセットアップ](#command-line-setup)を使用する代わりに、プログラムにより Agent Observability を有効にすることもできます。 + +{{< tabs >}} +{{% tab "Python" %}} + +`LLMObs.enable()` 関数を使用して Agent Observability を有効にします。 + +
+このセットアップ方法を ddtrace-run コマンドと一緒に使用しないでください。 +
+ +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs +LLMObs.enable( + ml_app="", + api_key="", + site="", + agentless_enabled=True, +) +{{< /code-block >}} + +##### パラメーター {#parameters} + +`ml_app` +: オプション - _文字列_ +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値をオーバーライドするには、[複数アプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 + +`integrations_enabled`- **デフォルト**: `true` +: オプション - _boolean_ +
Datadog がサポートする [LLM インテグレーション][1] のために、LLM 呼び出しの自動追跡を有効化するフラグです。指定しない場合、サポートされているすべての LLM インテグレーションがデフォルトで有効になります。LLM インテグレーションを使用しないようにするには、この値を `false` に設定してください。 + +`agentless_enabled` +: オプション - _boolean_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `True` に設定する必要があります。これは、`ddtrace` ライブラリにより、Datadog Agent を必要とするデータが送信されないように設定します。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルト設定されます。 + +`site` +: オプション - _文字列_ +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}指定しない場合、`DD_SITE` の値がデフォルト設定されます。 + +`api_key` +: オプション - _文字列_ +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。指定しない場合、`DD_API_KEY` の値がデフォルト設定されます。 + +`env` +: オプション - _文字列_ +
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルト設定されます。 + +`service` +: オプション - _文字列_ +
アプリケーションで使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルト設定されます。 + +`sample_rate` +: オプション - _浮動小数点数_ +
Agent Observability によって保持されるトレースの割合。`ddtrace` 4.12.0 以降が必要です。この設定は、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。[トレースサンプリング](#trace-sampling)を参照してください。 + +`capture_intent` +: オプション - _Boolean_ - **デフォルト**: `false` +
`True` に設定すると、呼び出し元のモデルに対してツールを呼び出した理由を説明するよう要求する引数がすべての MCP サーバーツールに追加されます。インテントはツールのスパンに記録されます。指定しない場合、`DD_MCP_CAPTURE_INTENT` の値がデフォルト設定されます。 + +[1]: /ja/llm_observability/instrument/auto_instrumentation/ +{{% /tab %}} + +{{% tab "Node.js" %}} + +
+このセットアップ方法を dd-trace/initialize.mjs コマンドと一緒に使用しないでください。 +
+ +`init()` 関数を使用して Agent Observability を有効にします。 + +{{< code-block lang="javascript" >}} +const tracer = require('dd-trace').init({ + llmobs: { + mlApp: "", + agentlessEnabled: true, + }, + site: "", + env: "", +}); + +const llmobs = tracer.llmobs; +{{< /code-block >}} + +**`llmobs` 構成のオプション** + +`mlApp` +: オプション - _文字列_ +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値をオーバーライドするには、[複数アプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 + +`agentlessEnabled` +: オプション - _boolean_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `true` に設定する必要があります。これは、`dd-trace` ライブラリにより、Datadog Agent を必要とするデータが送信されないように設定します。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルト設定されます。 + +`sampleRate` +: オプション - _数値_ +
Agent Observability によって保持されるトレースの割合。`dd-trace` 5.110.0 以降が必要です。この設定は、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。[トレースサンプリング](#trace-sampling)を参照してください。 + +**一般的なトレーサー設定のオプション**: + +`site` +: オプション - _文字列_ +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}指定しない場合、`DD_SITE` の値がデフォルト設定されます。 + +`env` +: オプション - _文字列_ +
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルト設定されます。 + +`service` +: オプション - _文字列_ +
アプリケーションで使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルト設定されます。 + +##### 環境変数 {#environment-variables} + +次の値を環境変数として設定してください。プログラムにより設定することはできません。 + +`DD_API_KEY` +: オプション - _文字列_ +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 + +{{% /tab %}} +{{< /tabs >}} + +{{% /collapse-content %}} + +AWS Lambda については、[Trace an LLM Application in AWS Lambda][17] を参照してください。 + + +SDK をインストールしてアプリケーションを実行すると、自動インスツルメンテーションによって Agent Observability にデータが表示されるはずです。手動インスツルメンテーションを使用して、まだサポートされていないカスタムビルドのフレームワークやライブラリの操作をキャプチャできます。 + +## トレースのサンプリング {#trace-sampling} + +
トレースのサンプリングは、Python SDK (ddtrace 4.12.0 以降) および Node.js SDK (dd-trace 5.110.0 以降) で利用可能です。Java SDK はトレースのサンプリングをサポートしていません。
+ +トレースのサンプリングは、Agent Observability が保持するトレースの割合を設定します。Agent Observability の課金は送信するスパンの量に基づいているため、サンプルレートの設定は Agent Observability のコストを制御する 1 つの方法です。SDK はルートスパンでサンプリングの決定を行い、[分散型トレーシング](#distributed-tracing)を通じてダウンストリームサービスで作成されたスパンを含む、そのルートスパンのすべての子スパンに適用します。 + +サンプリングは、[Agent Observability メトリクス](/llm_observability/investigate/metrics/)には、[トークンおよびコストメトリクス](/llm_observability/investigate/cost/)やその他の運用メトリクスを含めて、影響しません。サンプリングされていないスパンは Datadog がトレースを取り込んだ後に破棄されるため、これらのメトリクスは指定されたサンプルレートに関係なく、アプリケーションのインスツルメンテーションされたトラフィックの 100% に基づいたままとなります。トレースのサンプリングは、取り込み後に適用される [自動化ルール](/llm_observability/configure/automation_rules/) や [APM トレースのサンプリング](/tracing/trace_pipeline/ingestion_mechanisms/) などのアプリ内コントロールからも独立しています。 + +サンプルレートは、以下のいずれかの方法で設定できます。 + +- **環境変数** (`DD_LLMOBS_SAMPLE_RATE`): は、[コマンドラインのセットアップ](#command-line-setup) と [コード内でのセットアップ](#in-code-setup) の両方に適用されます。 +- **コード内パラメーター** (`sample_rate` in Python, `sampleRate` in Node.js): は、Python では `LLMObs.enable()` に、Node.js では `llmobs` の下で渡され、[コード内でのセットアップ](#in-code-setup)で SDK を有効化する際に使用されます。この設定は、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。 + +サンプルレートは、`0.0` (トレースを一切保持しない) から `1.0` (すべてのトレースを保持する) までの浮動小数点数です。デフォルトは `1.0` です。範囲外の値は無視されます。 + +{{< tabs >}} +{{% tab "Python" %}} +環境変数でサンプルレートを設定してください: + +{{< code-block lang="shell" >}} +DD_LLMOBS_SAMPLE_RATE=0.5 ddtrace-run +{{< /code-block >}} + +または、環境変数よりも優先される `sample_rate` を `LLMObs.enable()` に渡してください: + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs + +LLMObs.enable( + ml_app="", + sample_rate=0.5, +) +{{< /code-block >}} +{{% /tab %}} + +{{% tab "Node.js" %}} +環境変数でサンプルレートを設定してください: + +{{< code-block lang="shell" >}} +DD_LLMOBS_SAMPLE_RATE=0.5 NODE_OPTIONS="--import dd-trace/initialize.mjs" +{{< /code-block >}} + +または、環境変数よりも優先される `sampleRate` を `llmobs` の下で `init()` に渡してください。 + +{{< code-block lang="javascript" >}} +const tracer = require('dd-trace').init({ + llmobs: { + mlApp: "", + sampleRate: 0.5, + }, +}); + +const llmobs = tracer.llmobs; +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +## 手動インスツルメンテーション {#manual-instrumentation} + +{{< tabs >}} +{{% tab "Python" %}} + +LLM 操作をキャプチャするために、関数デコレータを使用してワークフローを簡単にインスツルメントすることができます。 + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import workflow + +@workflow +def handle_user_request(): + ... +{{< /code-block >}} + +または、細かい操作をキャプチャするためのコンテキストマネージャーベースのアプローチ: + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs + +with LLMObs.llm(model="gpt-4o"): + call_llm() + LLMObs.annotate( + metrics={ + "input_tokens": ..., + "output_tokens": ..., + }, + ) +{{< /code-block >}} + + +利用可能なスパンの種類のリストについては、[スパンの種類のドキュメント][1]を参照してください。関数内の操作をより詳細にトレースする方法については、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 + +[1]: /ja/llm_observability/quickstart/terms/ +{{% /tab %}} + +{{% tab "Node.js" %}} + +スパンをトレースするには、トレースしたい関数の関数ラッパーとして `llmobs.wrap(options, function)` を使用します。利用可能なスパンの種類のリストについては、[スパンの種類のドキュメント][1]を参照してください。関数内の操作をより詳細にトレースする方法については、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 + +### スパンの種類 {#span-kinds} + +スパンの種類は必須であり、`llmobs` トレース関数 (`trace`、`wrap`、および `decorate`) に渡される `options` オブジェクトに指定します。サポートされているスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。 + +**注:** 無効なスパンの種類を持つスパンは、Agent Observability に送信されません。 + +### 自動関数引数/出力/名前キャプチャ {#automatic-function-argumentoutputname-capturing} + +`llmobs.wrap` (TypeScript の場合は [`llmobs.decorate`](#function-decorators-in-typescript) も) では、トレースされている関数の入力、出力、および名前を自動的にキャプチャしようとします。スパンに手動でアノテーションを付ける必要がある場合は、[スパンの強化](#enriching-spans)を参照してください。アノテーションを付けた入力と出力により、自動キャプチャがオーバーライドされます。さらに、関数名をオーバーライドするには、オプションオブジェクトの `name` プロパティを `llmobs.wrap` 関数に渡します。 + +{{< code-block lang="javascript" >}} +function processMessage () { + ... // user application logic + return +} +processMessage = llmobs.wrap({ kind: 'workflow', name: 'differentFunctionName' }, processMessage) +{{< /code-block >}} + +### ラップされた関数のスパンを終了する条件{#conditions-for-finishing-a-span-for-a-wrapped-function} + +`llmobs.wrap` は、[`tracer.wrap`][2] の基本的な動作を拡張します。関数が呼び出されたときに作成される基本的なスパンは、次の条件で終了します。 + +- 関数が Promise を返す場合、スパンは Promise が解決または拒否されたときに終了します。 +- 関数が最後のパラメーターとしてコールバックを受け取る場合、スパンはそのコールバックが呼び出されたときに終了します。 +- 関数がコールバックを受け取らず、Promise を返さない場合、スパンは関数実行の終了時に終了します。 + +次の例は、最後の引数がコールバックである 2 番目の条件を示しています。 + +#### 例 {#example} + +{{< code-block lang="javascript" >}} +const express = require('express') +const app = express() + +function myAgentMiddleware (req, res, next) { + const err = ... // user application logic + // the span for this function is finished when `next` is called + next(err) +} +myAgentMiddleware = llmobs.wrap({ kind: 'agent' }, myAgentMiddleware) + +app.use(myAgentMiddleware) + +{{< /code-block >}} + +アプリケーションがコールバック関数を使用しない場合は、代わりにインラインでトレースされたブロックを使用することをお勧めします。詳細については、[インラインメソッドを使用したトレースのスパン](#tracing-spans-using-inline-methods)を参照してください。 + +{{< code-block lang="javascript" >}} +const express = require('express') +const app = express() + +function myAgentMiddleware (req, res) { + // the `next` callback is not being used here + return llmobs.trace({ kind: 'agent', name: 'myAgentMiddleware' }, () => { + return res.status(200).send('Hello World!') + }) +} + +app.use(myAgentMiddleware) + +{{< /code-block >}} + +[1]: /ja/llm_observability/quickstart/terms/ +[2]: /ja/tracing/trace_collection/custom_instrumentation/nodejs/dd-api/?tab=wrapper +{{% /tab %}} +{{% tab "Java" %}} + +### スパンの開始 {#starting-a-span} + +開始するスパンの種類に基づいて、複数の方法でスパンを開始することができます。サポートされているスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。 + +すべてのスパンは、`LLMObsSpan` のオブジェクトインスタンスとして開始されます。各スパンには、スパンとやり取りし、データを記録するためのメソッドがあります。 + +### スパンの終了 {#finishing-a-span} + +トレースを送信し、Datadog アプリで表示するためには、スパンを終了する必要があります。 + +スパンを終了するには、スパンオブジェクトインスタンスで `finish()` を呼び出します。可能であれば、例外が発生した場合でもスパンが送信されるように、スパンを `try/finally` ブロックでラップしてください。 + +#### 例 {#example-1} + +```java + try { + LLMObsSpan workflowSpan = LLMObs.startWorkflowSpan("my-workflow-span-name", "ml-app-override", "session-141"); + // user logic + // interact with started span + } finally { + workflowSpan.finish(); + } +``` + +[1]: /ja/llm_observability/quickstart/terms/#span-kinds +{{% /tab %}} +{{< /tabs >}} + +### LLM 呼び出し{#llm-calls} + +
LLM プロバイダーや、Datadog の LLM インテグレーションによってサポートされているフレームワークを使用している場合、これらの操作をトレースするために LLM スパンを手動で開始する必要はありません。
+ +
LLM スパンを手動でインスツルメントする場合は、スパンにアノテーションを付けて、トークン数 ( input_tokensoutput_tokens、および total_tokens) を自分で記録する必要があります。詳細については、スパンの強化を参照してください。
+ +{{< tabs >}} +{{% tab "Python" %}} +LLM 呼び出しをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.llm()` を使用します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="llm-span-arguments" %}} + +`model_name` +: 必須 - _文字列_ +
呼び出された LLM の名前。 + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`model_provider` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
モデルプロバイダーの名前。 +
**注**: 米ドルでの推定コストを表示するには、`model_provider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-2} + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs +from ddtrace.llmobs.decorators import llm + +@llm(model_name="claude", name="invoke_llm", model_provider="anthropic") +def llm_call(prompt): + completion = ... # user application logic to invoke LLM + LLMObs.annotate( + input_data=[{"role": "user", "content": prompt}], + output_data=[{"role": "assistant", "content": completion}], + metrics={"input_tokens": 4, "output_tokens": 6, "total_tokens": 10}, + ) + return completion +{{< /code-block >}} +{{% /tab %}} + +{{% tab "Node.js" %}} +LLM 呼び出しをトレースするには、スパンの種類を `llm` と指定し、必要に応じてオプションオブジェクトに次の引数を指定します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="llm-span-arguments" %}} + +`modelName` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
呼び出された LLM の名前。 + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`modelProvider` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
モデルプロバイダーの名前。 +
**注**: 米ドルでの推定コストを表示するには、`modelProvider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-3} + +{{< code-block lang="javascript" >}} +function llmCall (prompt) { + const completion = ... // user application logic to invoke LLM + llmobs.annotate({ + inputData: [{ role: "user", content: prompt }], + outputData: [{ role: "assistant", content: completion }], + metrics: { input_tokens: 4, output_tokens: 6, total_tokens: 10 } + }) + return completion +} +llmCall = llmobs.wrap({ kind: 'llm', name: 'invokeLLM', modelName: 'claude', modelProvider: 'anthropic' }, llmCall) +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Java" %}} +LLM 呼び出しをトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 + +``` +import datadog.trace.api.llmobs.LLMObs; +LLMObs.startLLMSpan(spanName, modelName, modelProvider, mlApp, sessionID); +``` + +{{% collapse-content title="引数" level="h4" expanded=false id="llm-span-arguments" %}} + +`spanName` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`spanName` はデフォルトでスパンの種類に設定されます。 + +`modelName` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
呼び出された LLM の名前。 + +`modelProvider` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
モデルプロバイダーの名前。 +
**注**: 米ドルでの推定コストを表示するには、`modelProvider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-4} + +{{< code-block lang="java" >}} +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeModel() { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + String inference = ... // user application logic to invoke LLM + llmSpan.annotateIO(...); // record the input and output + llmSpan.setMetrics(Map.of( + "input_tokens", 617, + "output_tokens", 338, + "total_tokens", 955 + )); + llmSpan.finish(); + return inference; + } +} +{{< /code-block >}} + +{{% /tab %}} +{{< /tabs >}} + + +### ワークフロー {#workflows} + +{{< tabs >}} +{{% tab "Python" %}} +ワークフローのスパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.workflow()` を使用します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="workflow-span-arguments" %}} +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-5} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import workflow + +@workflow +def process_message(): + ... # user application logic + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} + +ワークフローのスパンをトレースするには、スパンの種類を `workflow` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="workflow-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-6} + +{{< code-block lang="javascript" >}} +function processMessage () { + ... // user application logic + return +} +processMessage = llmobs.wrap({ kind: 'workflow' }, processMessage) +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Java" %}} +ワークフローのスパンをトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 + +``` +import datadog.trace.api.llmobs.LLMObs; +LLMObs.startWorkflowSpan(spanName, mlApp, sessionID); +``` + +{{% collapse-content title="引数" level="h4" expanded=false id="workflow-span-arguments" %}} + +`spanName` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`spanName` はデフォルトでスパンの種類に設定されます。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-7} + +{{< code-block lang="java" >}} +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String executeWorkflow() { + LLMObsSpan workflowSpan = LLMObs.startWorkflowSpan("my-workflow-span-name", null, "session-141"); + String workflowResult = workflowFn(); // user application logic + workflowSpan.annotateIO(...); // record the input and output + workflowSpan.finish(); + return workflowResult; + } +} +{{< /code-block >}} + +{{% /tab %}} +{{< /tabs >}} + + +### エージェント {#agents} + +{{< tabs >}} +{{% tab "Python" %}} +エージェントの実行をトレースするには、関数デコレータ `ddtrace.llmobs.decorators.agent()` を使用します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="agent-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +{{% /collapse-content %}} + +#### 例 {#example-8} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import agent + +@agent +def react_agent(): + ... # user application logic + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} +エージェントの実行をトレースするには、スパンの種類を `agent` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="agent-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-9} + +{{< code-block lang="javascript" >}} +function reactAgent () { + ... // user application logic + return +} +reactAgent = llmobs.wrap({ kind: 'agent' }, reactAgent) +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Java" %}} +エージェントの実行をトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 + +``` +import datadog.trace.api.llmobs.LLMObs; +LLMObs.startAgentSpan(spanName, mlApp, sessionID); +``` + +{{% collapse-content title="引数" level="h4" expanded=false id="agent-span-arguments" %}} + +`spanName` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +{{% /collapse-content %}} + +{{% /tab %}} +{{< /tabs >}} + +### ツール呼び出し {#tool-calls} + +{{< tabs >}} +{{% tab "Python" %}} +ツール呼び出しをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.tool()` を使用します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="tool-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-10} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import tool + +@tool +def call_weather_api(): + ... # user application logic + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} +ツール呼び出しをトレースするには、スパンの種類を `tool` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="tool-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-11} + +{{< code-block lang="javascript" >}} +function callWeatherApi () { + ... // user application logic + return +} +callWeatherApi = llmobs.wrap({ kind: 'tool' }, callWeatherApi) +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Java" %}} +ツール呼び出しをトレースするには、次のメソッドをインポートし、次の引数を指定して呼び出します。 + +```java +import datadog.trace.api.llmobs.LLMObs; +LLMObs.startToolSpan(spanName, mlApp, sessionID); +``` + +{{% collapse-content title="引数" level="h4" expanded=false id="tool-span-arguments" %}} + +`spanName` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +{{% /collapse-content %}} + +{{% /tab %}} +{{< /tabs >}} + +### タスク {#tasks} + +{{< tabs >}} +{{% tab "Python" %}} +タスクのスパンをトレースするには、関数デコレータ `LLMObs.task()` を使用します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="task-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-12} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import task + +@task +def sanitize_input(): + ... # user application logic + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} +タスクスパンをトレースするには、スパンの種類を `task` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 + +{{% collapse-content title="引数" level="h4" expanded=false id="task-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-13} + +{{< code-block lang="javascript" >}} +function sanitizeInput () { + ... // user application logic + return +} +sanitizeInput = llmobs.wrap({ kind: 'task' }, sanitizeInput) +{{< /code-block >}} + +{{% /tab %}} +{{% tab "Java" %}} +タスクスパンをトレースするには、次のメソッドをインポートし、次の引数を指定して呼び出します。 + +```java +import datadog.trace.api.llmobs.LLMObs; +LLMObs.startTaskSpan(spanName, mlApp, sessionID); +``` + +{{% collapse-content title="引数" level="h4" expanded=false id="task-span-arguments" %}} + +`spanName` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + + +{{% /collapse-content %}} + +{{% /tab %}} +{{< /tabs >}} + +### 埋め込み {#embeddings} + +{{< tabs >}} +{{% tab "Python" %}} +埋め込み操作をトレースするには、関数デコレータ `LLMObs.embedding()` を使用します。 + +**注**: 埋め込みスパンの入力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。埋め込み入力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +{{% collapse-content title="引数" level="h4" expanded=false id="embedding-span-arguments" %}} + +`model_name` +: 必須 - _文字列_ +
呼び出された LLM の名前。 + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はトレースされた関数の名前に設定されます。 + +`model_provider` +: オプション - _文字列_ - **デフォルト**: `"custom"` + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-14} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import embedding + +@embedding(model_name="text-embedding-3", model_provider="openai") +def perform_embedding(): + ... # user application logic + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} +埋め込み操作をトレースするには、スパンの種類を `embedding` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 + +**注**: 埋め込みスパンの入力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。埋め込み入力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +{{% collapse-content title="引数" level="h4" expanded=false id="embedding-span-arguments" %}} + +`modelName` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
呼び出された LLM の名前。 + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はトレースされた関数の名前に設定されます。 + +`modelProvider` +: オプション - _文字列_ - **デフォルト**: `"custom"` +
モデルプロバイダーの名前。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-15} + +{{< code-block lang="javascript" >}} +function performEmbedding () { + ... // user application logic + return +} +performEmbedding = llmobs.wrap({ kind: 'embedding', modelName: 'text-embedding-3', modelProvider: 'openai' }, performEmbedding) +{{< /code-block >}} + + +{{% /tab %}} +{{< /tabs >}} + +### 取得 {#retrievals} + +{{< tabs >}} +{{% tab "Python" %}} +取得スパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.retrieval()` を使用します。 + +**注**: 取得スパンの出力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。取得出力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +{{% collapse-content title="引数" level="h4" expanded=false id="retrieval-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`session_id` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`ml_app` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-16} + +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import retrieval + +@retrieval +def get_relevant_docs(question): + context_documents = ... # user application logic + LLMObs.annotate( + input_data=question, + output_data = [ + {"id": doc.id, "score": doc.score, "text": doc.text, "name": doc.name} for doc in context_documents + ] + ) + return +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} + +取得スパンをトレースするには、スパンの種類を `retrieval` と指定し、必要に応じてオプションオブジェクトに次の引数を指定します。 + +**注**: 取得スパンの出力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。取得出力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +{{% collapse-content title="引数" level="h4" expanded=false id="retrieval-span-arguments" %}} + +`name` +: オプション - _文字列_ +
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 + +`sessionId` +: オプション - _文字列_ +
基盤となるユーザーセッションの ID。詳細については、[ユーザーセッションの追跡](#tracking-user-sessions)を参照してください。 + +`mlApp` +: オプション - _文字列_ +
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-17} + +ここには、スパンにアノテーションを付ける例も含まれています。詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +{{< code-block lang="javascript" >}} +function getRelevantDocs (question) { + const contextDocuments = ... // user application logic + llmobs.annotate({ + inputData: question, + outputData: contextDocuments.map(doc => ({ + id: doc.id, + score: doc.score, + text: doc.text, + name: doc.name + })) + }) + return +} +getRelevantDocs = llmobs.wrap({ kind: 'retrieval' }, getRelevantDocs) +{{< /code-block >}} + +{{% /tab %}} +{{< /tabs >}} + +## スパンのネスト {#nesting-spans} + +現在のスパンが終了する前に新しいスパンを開始すると、2 つのスパンの間にある親子関係が自動的にトレースされます。親スパンは大きな操作を表し、子スパンはその中の小さなネストされたサブ操作を表します。 + +{{< tabs >}} +{{% tab "Python" %}} +{{< code-block lang="python" >}} +from ddtrace.llmobs.decorators import task, workflow + +@workflow +def extract_data(document): + preprocess_document(document) + ... # performs data extraction on the document + return + +@task +def preprocess_document(document): + ... # preprocesses a document for data extraction + return +{{< /code-block >}} +{{% /tab %}} +{{% tab "Node.js" %}} +{{< code-block lang="javascript" >}} +function preprocessDocument (document) { + ... // preprocesses a document for data extraction + return +} +preprocessDocument = llmobs.wrap({ kind: 'task' }, preprocessDocument) + +function extractData (document) { + preprocessDocument(document) + ... // performs data extraction on the document + return +} +extractData = llmobs.wrap({ kind: 'workflow' }, extractData) +{{< /code-block >}} +{{% /tab %}} +{{% tab "Java" %}} +{{< code-block lang="java" >}} +import datadog.trace.api.llmobs.LLMObs; +import datadog.trace.api.llmobs.LLMObsSpan; + +public class MyJavaClass { + public void preprocessDocument(String document) { + LLMObsSpan taskSpan = LLMObs.startTaskSpan("preprocessDocument", null, "session-141"); + ... // preprocess document for data extraction + taskSpan.annotateIO(...); // record the input and output + taskSpan.finish(); + } + + public String extractData(String document) { + LLMObsSpan workflowSpan = LLMObs.startWorkflowSpan("extractData", null, "session-141"); + preprocessDocument(document); + ... // perform data extraction on the document + workflowSpan.annotateIO(...); // record the input and output + workflowSpan.finish(); + } +} + +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + + +## スパンの強化 {#enriching-spans} + +
+ここでの metrics パラメーターは、個々のスパンに属性として付加された数値を指します。Datadog プラットフォームメトリクスではありません。認識された特定のキー ( input_tokensoutput_tokens、および total_tokensなど) に対し、Datadog はこれらのスパン属性を使用して、対応するプラットフォームメトリクス ( ml_obs.span.llm.input.tokensなど) をダッシュボードやモニターで使用するために生成します。 +
+ +{{< tabs >}} +{{% tab "Python" %}} +SDK には、入力、出力、およびメタデータでスパンを強化するための `LLMObs.annotate()` メソッドが用意されています。 + +`LLMObs.annotate()` メソッドは次の引数を受け付けます。 + +{{% collapse-content title="引数" level="h3" expanded=false id="annotating-span-arguments" %}} + +`span` +: オプション - _スパン_ - **デフォルト**: 現在のアクティブなスパン +
アノテーションを付けるスパン。`span` が指定されていない場合 (関数デコレータを使用する場合など)、SDK は現在のアクティブなスパンにアノテーションを付けます。 + +`input_data` +: オプション - _JSON のシリアライズ可能な型、または辞書のリスト_ +
JSON のシリアライズ可能な型 (非 LLM スパン用) または次の形式の辞書のリスト : `{"content": "...", "role": "...", "tool_calls": ..., "tool_results": ..., "audio_parts": ..., "image_parts": ...}`。ここで `"tool_calls"` は、必須キー `"name"`、`"arguments"` とオプションのキー `"tool_id"`、`"type"` を持つ呼び出し辞書のオプションのリストであり、`"tool_results"` は、必須キー `"result"` と、関数呼び出しシナリオ用のオプションのキー `"name"`、`"tool_id"`、`"type"` を持つツール結果辞書のオプションのリストです。`"audio_parts"` および `"image_parts"` は、マルチモーダルスパン用のメディア辞書のオプションのリストであり、それぞれに必須の `"mime_type"` と、`"content"` (インラインで埋め込まれた base64 エンコードメディア) または `"attachment_key"` のいずれか一方が必要です。**注**: 埋め込みスパンは特別なケースであり、`{"text": "..."}` という形式の文字列または辞書 (または辞書のリスト) が必要です。 + +`output_data` +: オプション - _JSON のシリアライズ可能な型、または辞書のリスト_ +
JSON のシリアライズ可能な型 (非 LLM スパン用) または `{"content": "...", "role": "...", "tool_calls": ..., "audio_parts": ..., "image_parts": ...}` という形式の辞書のリスト。ここで `"tool_calls"` は、必須キー `"name"`、`"arguments"` と、関数呼び出しシナリオ用のオプションのキー `"tool_id"`、`"type"` を持つツール呼び出し辞書のオプションのリストです。`"audio_parts"` および `"image_parts"` は、マルチモーダルスパン用のメディア辞書のオプションのリストであり、それぞれに必須の `"mime_type"` と、`"content"` (インラインで埋め込まれた base64 エンコードメディア) または `"attachment_key"` のいずれか一方が必要です。**注**: 取得スパンは特別なケースであり、`{"text": "...", "name": "...", "score": float, "id": "..."}` という形式の文字列または辞書 (または辞書のリスト) が必要です。 + +`tool_definitions` +: オプション - _辞書のリスト_ +
関数呼び出しシナリオ用のツール定義辞書のリスト。各ツール定義には、必須の `"name": "..."` キーとオプションの `"description": "..."` および `"schema": {...}` キーが必要です。 + +`metadata` +: オプション - _辞書_ +
スパンで記述された入力または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です (`model_temperature`、`max_tokens`、`top_k` など)。 + +`metrics` +: オプション - _辞書_ +
スパンで記述された操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値の辞書です (`input_tokens`、`output_tokens`、`total_tokens`、`time_to_first_token` など)。`time_to_first_token` の単位は秒であり、デフォルトで出力される `duration` メトリクスと同様です。 + +`tags` +: オプション - _辞書_ +
ユーザーがタグとしてスパンに追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 + +`cost_tags` +: オプション - _文字列のリスト_ +
生成された LLM コストおよびトークンメトリクスにカスタムタグとして伝播するタグキーのリスト (`tags` で設定済み、または同じスパンに以前にアノテーションされたもの)。既存のタグキーを参照していないエントリはスキップされます。詳細については、[コストモニタリング](#cost-monitoring)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-18} + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs +from ddtrace.llmobs.decorators import embedding, llm, retrieval, workflow + +@llm(model_name="model_name", model_provider="model_provider") +def llm_call(prompt): + resp = ... # llm call here + LLMObs.annotate( + span=None, + input_data=[{"role": "user", "content": "Hello world!"}], + output_data=[{"role": "assistant", "content": "How can I help?"}], + metadata={"temperature": 0, "max_tokens": 200}, + metrics={"input_tokens": 4, "output_tokens": 6, "total_tokens": 10}, + tags={"host": "host_name"}, + ) + return resp + +@workflow +def extract_data(document): + resp = llm_call(document) + LLMObs.annotate( + input_data=document, + output_data=resp, + tags={"host": "host_name"}, + ) + return resp + +@embedding(model_name="text-embedding-3", model_provider="openai") +def perform_embedding(): + ... # user application logic + LLMObs.annotate( + span=None, + input_data={"text": "Hello world!"}, + output_data=[0.0023064255, -0.009327292, ...], + metrics={"input_tokens": 4}, + tags={"host": "host_name"}, + ) + return + +@retrieval(name="get_relevant_docs") +def similarity_search(): + ... # user application logic + LLMObs.annotate( + span=None, + input_data="Hello world!", + output_data=[{"text": "Hello world is ...", "name": "Hello, World! program", "id": "document_id", "score": 0.9893}], + tags={"host": "host_name"}, + ) + return + +@llm(model_name="gpt-realtime", model_provider="openai") +def voice_turn(user_audio_bytes): + import base64 + resp = ... # multimodal (audio) llm call here + LLMObs.annotate( + span=None, + input_data=[ + { + "role": "user", + "content": "Hey, how are you?", # transcript of the input audio + "audio_parts": [ + {"mime_type": "audio/wav", "content": base64.b64encode(user_audio_bytes).decode("utf-8")} + ], + } + ], + output_data=[ + { + "role": "assistant", + "content": "Hey! I'm doing great, thanks for asking. How about you?", + "audio_parts": [ + {"mime_type": "audio/wav", "content": base64.b64encode(resp.audio_bytes).decode("utf-8")} + ], + } + ], + ) + return resp + +@llm(model_name="gpt-4o", model_provider="openai") +def describe_image(image_bytes): + import base64 + resp = ... # multimodal (vision) llm call here + LLMObs.annotate( + span=None, + input_data=[ + { + "role": "user", + "content": "What is in this image?", + "image_parts": [ + {"mime_type": "image/png", "content": base64.b64encode(image_bytes).decode("utf-8")} + ], + } + ], + output_data=[{"role": "assistant", "content": "The image shows a golden retriever puppy."}], + ) + return resp + +{{< /code-block >}} + +メッセージに `audio_parts` または `image_parts` の注釈が付いている場合、トレースビューではインラインオーディオプレーヤーおよび画像としてレンダリングされます。 + +{{< img src="llm_observability/instrumentation/audio_example.png" alt="Agent Observability のトレースビューにある LLM スパン。USER からの入力メッセージには、トランスクリプト「Hey, how are you?」付きのインラインオーディオプレーヤーが表示され、ASSISTANT からの出力メッセージには、「Click to play audio」というコントロールとトランスクリプト「Hey!」が表示されます。とても元気です。聞いてくれてありがとうございます。あなたはどうですか?" style="width:100%;" >}} + +{{< img src="llm_observability/instrumentation/image_example.png" alt="Agent Observability のトレースビューにある LLM スパン。USER からの入力メッセージには、「What is in this image?」というプロンプトが表示されます。黒い子犬のインライン写真が表示され、ASSISTANT からの出力メッセージでは、木製の表面にいる黒いラブラドール・レトリバーの子犬として説明されています。" style="width:100%;" >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} +SDK には、入力、出力、メタデータを使用してスパンにアノテーションを付けるための `llmobs.annotate()` メソッドが用意されています。 + +`LLMObs.annotate()` メソッドは次の引数を受け付けます。 + +{{% collapse-content title="引数" level="h3" expanded=false id="annotating-span-arguments" %}} +`span` +: オプション - _スパン_ - **デフォルト**: 現在のアクティブなスパン +
アノテーションを付けるスパン。`span` が指定されていない場合 (関数ラッパーを使用している場合など)、SDK は現在のアクティブなスパンにアノテーションを付けます。 + +`annotationOptions` +: 必須 - _オブジェクト_ +
スパンにアノテーションを付けるための異なるタイプのデータのオブジェクトです。 + +`annotationOptions` オブジェクトには、次の項目を含めることができます。 + +`inputData` +: オプション - _JSON のシリアライズ可能な型、またはオブジェクトのリスト_ +
(非 LLM スパン用の) JSON のシリアライズ可能な型、または : `{role: "...", content: "...", audioParts: [...], imageParts: [...]}` という形式の辞書のリスト (LLM スパン用)。`audioParts` および `imageParts` は、マルチモーダルスパン用のメディアオブジェクトのオプションのリストであり、それぞれに必須の `mimeType` と、`content` (インラインで埋め込まれた base64 エンコードメディア) または `attachmentKey` のいずれか一方が必要です。**注**: 埋め込みスパンは特別なケースであり、`{text: "..."}` という形式の文字列またはオブジェクト (またはオブジェクトのリスト) が必要です。 + +`outputData` +オプション - _JSON のシリアライズ可能な型、またはオブジェクトのリスト_ +
(非 LLM スパン用の) JSON のシリアライズ可能な型、または `{role: "...", content: "...", audioParts: [...], imageParts: [...]}` という形式の辞書のリスト (LLM スパン用)。`audioParts` および `imageParts` は、マルチモーダルスパン用のメディアオブジェクトのオプションのリストであり、それぞれに必須の `mimeType` と、`content` (インラインで埋め込まれた base64 エンコードメディア) または `attachmentKey` のいずれか一方が必要です。**注**: 取得スパンは特別なケースであり、`{text: "...", name: "...", score: number, id: "..."}` という形式の文字列またはオブジェクト (またはオブジェクトのリスト) が必要です。 + +`metadata` +: オプション - _オブジェクト_ +
スパンで記述された入力または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`model_temperature`、`max_tokens`、`top_k` など)。 + +`metrics` +: オプション - _オブジェクト_ +
スパンで記述された操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値のオブジェクト (`input_tokens`、`output_tokens`、`total_tokens` など)。 + +`tags` +: オプション - _オブジェクト_ +
スパンのコンテキストに関するタグとしてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`session`、`environment`、`system`、`versioning` など)。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 + +`costTags` +: オプション - _文字列の配列_ +
生成された LLM コストおよびトークンメトリクスにカスタムタグとして伝播するタグキーのリスト (`tags` で設定済み、または同じスパンに以前にアノテーションされたもの)。既存のタグキーを参照していないエントリはスキップされます。詳細については、[コストモニタリング](#cost-monitoring)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-19} + +{{< code-block lang="javascript" >}} +function llmCall (prompt) { + const completion = ... // user application logic to invoke LLM + llmobs.annotate({ + inputData: [{ role: "user", content: "Hello world!" }], + outputData: [{ role: "assistant", content: "How can I help?" }], + metadata: { temperature: 0, max_tokens: 200 }, + metrics: { input_tokens: 4, output_tokens: 6, total_tokens: 10 }, + tags: { host: "host_name" } + }) + return completion +} +llmCall = llmobs.wrap({ kind:'llm', modelName: 'modelName', modelProvider: 'modelProvider' }, llmCall) + +function extractData (document) { + const resp = llmCall(document) + llmobs.annotate({ + inputData: document, + outputData: resp, + tags: { host: "host_name" } + }) + return resp +} +extractData = llmobs.wrap({ kind: 'workflow' }, extractData) + +function performEmbedding () { + ... // user application logic + llmobs.annotate( + undefined, { // this can be set to undefined or left out entirely + inputData: { text: "Hello world!" }, + outputData: [0.0023064255, -0.009327292, ...], + metrics: { input_tokens: 4 }, + tags: { host: "host_name" } + } + ) +} +performEmbedding = llmobs.wrap({ kind: 'embedding', modelName: 'text-embedding-3', modelProvider: 'openai' }, performEmbedding) + +function similaritySearch () { + ... // user application logic + llmobs.annotate(undefined, { + inputData: "Hello world!", + outputData: [{ text: "Hello world is ...", name: "Hello, World! program", id: "document_id", score: 0.9893 }], + tags: { host: "host_name" } + }) + return +} +similaritySearch = llmobs.wrap({ kind: 'retrieval', name: 'getRelevantDocs' }, similaritySearch) + +function voiceTurn (userAudioBytes) { + const resp = ... // multimodal (audio) llm call here + llmobs.annotate({ + inputData: [ + { + role: "user", + content: "Hey, how are you?", // transcript of the input audio + audioParts: [{ mimeType: "audio/wav", content: userAudioBytes.toString("base64") }] + } + ], + outputData: [ + { + role: "assistant", + content: "Hey! I'm doing great, thanks for asking. How about you?", + audioParts: [{ mimeType: "audio/wav", content: resp.audioBuffer.toString("base64") }] + } + ] + }) + return resp +} +voiceTurn = llmobs.wrap({ kind: 'llm', modelName: 'gpt-audio', modelProvider: 'openai' }, voiceTurn) + +function describeImage (imageBytes) { + const resp = ... // multimodal (vision) llm call here + llmobs.annotate({ + inputData: [ + { + role: "user", + content: "What is in this image?", + imageParts: [{ mimeType: "image/png", content: imageBytes.toString("base64") }] + } + ], + outputData: [{ role: "assistant", content: "The image shows a golden retriever puppy." }] + }) + return resp +} +describeImage = llmobs.wrap({ kind: 'llm', modelName: 'gpt-4o', modelProvider: 'openai' }, describeImage) + +{{< /code-block >}} + +メッセージに `audioParts` または `imageParts` の注釈が付いている場合、トレースビューではインラインオーディオプレーヤーおよび画像としてレンダリングされます。 + +{{< img src="llm_observability/instrumentation/audio_example.png" alt="Agent Observability のトレースビューにある LLM スパン。USER からの入力メッセージには、トランスクリプト「Hey, how are you?」付きのインラインオーディオプレーヤーが表示され、ASSISTANT からの出力メッセージには、「Click to play audio」というコントロールとトランスクリプト「Hey!」が表示されます。とても元気です。聞いてくれてありがとうございます。あなたはどうですか?" style="width:100%;" >}} + +{{< img src="llm_observability/instrumentation/image_example.png" alt="Agent Observability のトレースビューにある LLM スパン。USER からの入力メッセージには、「What is in this image?」というプロンプトが表示されます。黒い子犬のインライン写真が表示され、ASSISTANT からの出力メッセージでは、木製の表面にいる黒いラブラドール・レトリバーの子犬として説明されています。" style="width:100%;" >}} + +OpenAI の音声チャット補完では、`audioParts` も [Datadog の LLM インテグレーション](/llm_observability/instrument/auto_instrumentation/) によって自動的にキャプチャされるため、手動で注釈を付ける必要はありません。`audioParts` とは異なり、`imageParts` は現在、自動的にキャプチャされないため、手動で注釈を付ける必要があります。自動キャプチャは今後のリリースで予定されています。 + +{{% /tab %}} +{{% tab "Java" %}} +SDK には、入力、出力、メトリクス、メタデータを使用してスパンにアノテーションを付けるためのいくつかのメソッドが用意されています。 + +### 入力と出力のアノテーション付け {#annotating-inputs-and-outputs} + +`LLMObsSpan` インターフェイスの `annotateIO()` メンバーメソッドを使用して、`LLMObsSpan` に構造化された入力および出力データを追加します。ここにはオプションの引数と LLM メッセージオブジェクトが含まれます。 + +#### 引数 {#arguments} + +引数が null または空の場合、処理は何も行われません。たとえば、`inputData` が空ではない文字列で、`outputData` が null の場合は、`inputData` のみが記録されます。 + +`inputData` +: オプション - _文字列_ または _List_ +
文字列 (非 LLM スパン用)、または LLM スパン用の `LLMObs.LLMMessage` のリスト。 + +`outputData` +: オプション - _文字列_ または _List_ +
文字列 (非 LLM スパン用)、または LLM スパン用の `LLMObs.LLMMessage` のリスト。 + +#### LLM メッセージ {#llm-messages} +LLM スパンは、`LLMObs.LLMMessage` オブジェクトを使用して LLM メッセージでアノテーションを付ける必要があります。 + +`LLMObs.LLMMessage` オブジェクトは、次の引数を指定して `LLMObs.LLMMessage.from()` を呼び出すことでインスタンス化できます。 + +`role` +: 必須 - _文字列_ +
メッセージの作成者の役割を記述する文字列。 + +`content` +: 必須 - _文字列_ +
メッセージの内容を含む文字列。 + +#### 例 {#example-20} + +```java +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeChat(String userInput) { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + String systemMessage = "You are a helpful assistant"; + Response chatResponse = ... // user application logic to invoke LLM + llmSpan.annotateIO( + Arrays.asList( + LLMObs.LLMMessage.from("user", userInput), + LLMObs.LLMMessage.from("system", systemMessage) + ), + Arrays.asList( + LLMObs.LLMMessage.from(chatResponse.role, chatResponse.content) + ) + ); + llmSpan.finish(); + return chatResponse; + } +} +``` + +### メトリクスの追加 {#adding-metrics} + +#### メトリクスの一括追加 {#bulk-add-metrics} + +`LLMObsSpan` インターフェイスの `setMetrics()` メンバーメソッドは、複数のメトリクスを一括でアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-1} + +`metrics` +: 必須 - _Map_ +
スパンで記述された操作に関連するメトリクスを記録するためにユーザーが追加できる、JSON のシリアライズ可能なキーと数値のマップ (たとえば、`input_tokens`、`output_tokens`、または`total_tokens`)。 + +#### 単一のメトリクスを追加 {#add-a-single-metric} + +`LLMObsSpan` インターフェイスの `setMetric()` メンバーメソッドは、単一のメトリクスをアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-2} + +`key` +: 必須 - _CharSequence_ +
メトリクスの名前。 + +`value` +: 必須 - _int_、_long_、または _double_ +
メトリクスの値。 + +#### 例 {#examples} + +```java +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeChat(String userInput) { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + String chatResponse = ... // user application logic to invoke LLM + llmSpan.setMetrics(Map.of( + "input_tokens", 617, + "output_tokens", 338, + "time_per_output_token", 0.1773 + )); + llmSpan.setMetric("total_tokens", 955); + llmSpan.setMetric("time_to_first_token", 0.23); + llmSpan.finish(); + return chatResponse; + } +} +``` + +### タグの追加 {#adding-tags} + +タグの詳細については、[タグの概要][1] を参照してください。 + +#### タグの一括追加 {#bulk-add-tags} + +`LLMObsSpan` インターフェイスの `setTags()` メンバーメソッドは、複数のタグを一括でアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-3} + +`tags` +: 必須 - _Map_ +
スパンのコンテキストを説明するためにユーザーがタグとして追加できる JSON のシリアライズ可能なキーと値のペアのマップ (たとえば、`session`、`environment`、`system`、または`version`)。 + +#### 単一のタグを追加 {#add-a-single-tag} + +`LLMObsSpan` インターフェイスの `setTag()` メンバーメソッドは、単一のタグをアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-4} + +`key` +: 必須 - _文字列_ +
タグのキー。 + +`value` +: 必須 - _int_、_long_、_double_、_boolean_、または _文字列_ +
タグの値。 + +#### 例 {#examples-1} + +```java +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeChat(String userInput) { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + String chatResponse = ... // user application logic to invoke LLM + llmSpan.setTags(Map.of( + "chat_source", "web", + "users_in_chat", 3 + )); + llmSpan.setTag("is_premium_user", true); + llmSpan.finish(); + return chatResponse; + } +} +``` + +### エラーのアノテーション付け {#annotating-errors} + +#### Throwable の追加 (推奨) {#adding-a-throwable-recommended} + +`LLMObsSpan` インターフェイスの `addThrowable()` メンバーメソッドは、スタックトレースを持つ Throwable をアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-5} + +`throwable` +: 必須 - _Throwable_ +
発生した Throwable/Exception。 + +#### エラーメッセージの追加 {#adding-an-error-message} + +`LLMObsSpan` インターフェイスの `setErrorMessage()` メンバーメソッドは、エラー文字列をアタッチするための次の引数を受け付けます。 + +##### 引数 {#arguments-6} + +`errorMessage` +: 必須 - _文字列_ +
エラーメッセージ。 + +#### エラーフラグの設定 {#setting-an-error-flag} + +`LLMObsSpan` インターフェイスの `setError()` メンバーメソッドは、操作にエラーがあることを示すための次の引数を受け付けます。 + +##### 引数 {#arguments-7} + +`error` +: 必須 - _boolean_ +
`true` の場合、スパンでエラーが発生しています。 + +#### 例 {#examples-2} + +```java +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeChat(String userInput) { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + String chatResponse = "N/A"; + try { + chatResponse = ... // user application logic to invoke LLM + } catch (Exception e) { + llmSpan.addThrowable(e); + throw new RuntimeException(e); + } finally { + llmSpan.finish(); + } + return chatResponse; + } +} +``` + +### メタデータのアノテーション付け {#annotating-metadata} + +`LLMObsSpan` インターフェイスの `setMetadata()` メンバーメソッドは、次の引数を受け付けます。 + +`metadata` +: 必須 - _Map_ +
スパンによって記述された入力または出力操作に関連するメタデータを含む、JSON のシリアライズ可能なキーと値のペアのマップです。 + +#### 例 {#example-21} + +```java +import datadog.trace.api.llmobs.LLMObs; + +public class MyJavaClass { + public String invokeChat(String userInput) { + LLMObsSpan llmSpan = LLMObs.startLLMSpan("my-llm-span-name", "my-llm-model", "my-company", "maybe-ml-app-override", "session-141"); + llmSpan.setMetadata( + Map.of( + "temperature", 0.5, + "is_premium_member", true, + "class", "e1" + ) + ); + String chatResponse = ... // user application logic to invoke LLM + return chatResponse; + } +} +``` + +[1]: /ja/getting_started/tagging/ +{{% /tab %}} +{{< /tabs >}} + +### 自動インスツルメンテーションスパンのアノテーション付け{#annotating-auto-instrumented-spans} + +{{< tabs >}} +{{% tab "Python" %}} + +SDK の `LLMObs.annotation_context()` メソッドは、アノテーションコンテキストがアクティブな間に開始されたすべての自動インスツルメンテーションスパンを変更するために使用できるコンテキストマネージャーを返します。 + +`LLMObs.annotation_context()` メソッドは次の引数を受け付けます。 + +{{% collapse-content title="引数" level="h4" expanded=false id="annotating-autoinstrumented-span-arguments" %}} + +`name` +: オプション - _str_ +
アノテーションコンテキスト内で開始される自動インスツルメンテーションされたスパンのスパン名をオーバーライドする名前です。 + +`prompt` +: オプション - _辞書_ +
LLM 呼び出しに使用されるプロンプトを表す辞書です。完全なスキーマとサポートされているキーについては、[プロンプトオブジェクト](#prompt-tracking-arguments)のドキュメントを参照してください。`Prompt`オブジェクトを `ddtrace.llmobs.utils` からインポートして、`prompt` 引数として渡すこともできます。**注**: この引数は LLM スパンにのみ適用されます。 + +`tags` +: オプション - _辞書_ +
ユーザーがタグとしてスパンに追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 + +`cost_tags` +: オプション - _文字列のリスト_ +
生成された LLM コストおよびトークンメトリクスにカスタムタグとして伝播するタグキーのリスト。各エントリでは、スパン開始時に `tags` に存在するキー (同じコンテキストまたは親コンテキストに提供されたもの) を指定する必要があります。`LLMObs.annotate()` で後から追加されたタグキーは保持されません。詳細については、[コストモニタリング](#cost-monitoring)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-22} + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs +from ddtrace.llmobs.decorators import workflow + +@workflow +def rag_workflow(user_question): + context_str = retrieve_documents(user_question).join(" ") + + with LLMObs.annotation_context( + prompt = Prompt( + id="chatbot_prompt", + version="1.0.0", + template="Please answer the question using the provided context: {{question}}\n\nContext:\n{{context}}", + variables={ + "question": user_question, + "context": context_str, + } + ), + tags = { + "retrieval_strategy": "semantic_similarity" + }, + name = "augmented_generation" + ): + completion = openai_client.chat.completions.create(...) + return completion.choices[0].message.content + +{{< /code-block >}} + +{{% /tab %}} + +{{% tab "Node.js" %}} + +SDK の `llmobs.annotationContext()` は、コールバック関数のスコープ内で開始されたすべての自動インスツルメンテーションスパンを変更するために使用できるコールバック関数を受け付けます。 + +`llmobs.annotationContext()` メソッドは、最初の引数で次のオプションを受け付けます。 + +{{% collapse-content title="オプション" level="h4" expanded=false id="annotating-autoinstrumented-span-arguments" %}} + +`name` +: オプション - _str_ +
アノテーションコンテキスト内で開始される自動インスツルメンテーションされたスパンのスパン名をオーバーライドする名前です。 + +`tags` +: オプション - _オブジェクト_ +
ユーザーがスパンにタグとして追加できる JSON のシリアライズ可能なキーと値のペアのオブジェクトです。キーの例: : `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 + +`costTags` +: オプション - _文字列の配列_ +
生成された LLM コストおよびトークンメトリクスにカスタムタグとして伝播するタグキーのリスト。各エントリでは、スパン開始時に `tags` に存在するキー (同じコンテキストまたは親コンテキストに提供されたもの) を指定する必要があります。`llmobs.annotate()` で後から追加されたタグキーは保持されません。詳細については、[コストモニタリング](#cost-monitoring)を参照してください。 + +{{% /collapse-content %}} + +#### 例 {#example-23} + +{{< code-block lang="javascript" >}} +const { llmobs } = require('dd-trace'); + +function ragWorkflow(userQuestion) { + const contextStr = retrieveDocuments(userQuestion).join(" "); + + const completion = await llmobs.annotationContext({ + tags: { + retrieval_strategy: "semantic_similarity" + }, + name: "augmented_generation" + }, async () => { + const completion = await openai_client.chat.completions.create(...); + return completion.choices[0].message.content; + }); +} + +{{< /code-block >}} + +{{% /tab %}} +{{< /tabs >}} + +## プロンプト追跡 {#prompt-tracking} + +構造化されたプロンプトメタデータを LLM スパンにアタッチすることにより、結果を再現し、変更を監査し、バージョン間でプロンプトのパフォーマンスを比較できるようにします。テンプレートを使用する際、Agent Observability は、テンプレートの内容の変更に基づいて[バージョン追跡](#version-tracking)も提供します。 + +{{< tabs >}} +{{% tab "Python" %}} +LLM 呼び出しの前にプロンプトメタデータをアタッチするには、`LLMObs.annotation_context(prompt=...)` を使用します。スパンアノテーションの詳細については、[スパンの強化](#enriching-spans)を参照してください。 + +#### 引数 {#arguments-8} + +{{% collapse-content title="引数" level="h5" expanded=false id="prompt-tracking-arguments" %}} + +`prompt` +: 必須 - 辞書 +
次のプロンプトスキーマに従った型付き辞書。 + +{{% /collapse-content %}} + +{{% collapse-content title="プロンプト構造" level="h5" expanded=false id="prompt-structure" %}} + +サポートされているキー: + +- `id` (str): このプロンプトの論理識別子。`ml_app` ごとに一意である必要があります。デフォルトは `{ml_app}-unnamed_prompt` です。 +- `version` (str): プロンプトのバージョンタグ (例: "1.0.0")。詳細については、[バージョン追跡](#version-tracking)を参照してください。 +- `variables`(Dict[str, str]): テンプレートのプレースホルダーに入力するために使用される変数。 +- `template`(str): プレースホルダーを含むテンプレート文字列 (例: `"Translate {{text}} to {{lang}}")。 +- `chat_template`(List[Message]): マルチメッセージテンプレート形式。`{ "role": "", "content": "