Sobre el proyecto

Pup es una interfaz de línea de comandos publicada por Datadog que expone una amplia porción de la plataforma de observabilidad de Datadog a través de una sola herramienta. El README la presenta como una CLI "lista para agentes de IA": los comandos son autodescubribles, la salida puede estructurarse como JSON o YAML para su análisis, y la autenticación admite OAuth2 con alcance y PKCE en lugar de solo claves de larga duración. Las personas también pueden usarla. La cobertura abarca muchas áreas de producto. La observabilidad central incluye métricas (V1 y V2), logs, eventos, RUM (apps, sesiones, eventos, métricas, filtros de retención, listas de reproducción de replay, viewership, mapas de calor), servicios y entidades de APM, trazas, muestras de monitoreo de bases de datos y session replay. El monitoreo y las alertas cubren monitores, dashboards, SLOs, synthetics, downtimes, notebooks, páginas de estado, automatización de flujos de trabajo y runbooks locales definidos en YAML con tipos de paso pup/shell/http/workflow. La seguridad y el cumplimiento incluyen reglas/señales/hallazgos de monitoreo de seguridad, hallazgos de seguridad en la nube y de aplicaciones mediante DDSQL, análisis estático, registros de auditoría, gobernanza de datos, gobernanza de etiquetas, amenazas de CSM, escaneo sin agente para AWS/GCP/Azure, consultas de restricción de logs y solicitudes de eliminación de datos. Los comandos de infraestructura y nube cubren hosts, etiquetas, flujos y dispositivos de red, integraciones de AWS/GCP/Azure/OCI, contenedores y procesos. Las herramientas de incidentes y operaciones incluyen incidentes, equipos de guardia y páginas, gestión de casos con vinculación a Jira/ServiceNow, seguimiento de errores, catálogo de servicios, scorecards, automatización de flotas, conexiones HAMR, investigaciones, gestión de cambios, historias de cambios, sondas de depurador en vivo y entidades del catálogo de software. La cobertura de CI/CD y desarrollo incluye visibilidad de CI, optimización de pruebas y pruebas inestables, métricas DORA, resúmenes de cobertura de código y puertas de despliegue. Los comandos de organización y acceso gestionan usuarios, organizaciones, claves de API, claves de aplicación y asignaciones de AuthN. Las áreas de plataforma y configuración incluyen medición de uso, gestión de costos y Cloud Cost Management, analítica de productos, integraciones de terceros, feature flags, flujos de datos de Kafka (experimental), conjuntos de datos restringidos, canalizaciones de observabilidad, observabilidad de LLM, tablas de referencia, endpoints misceláneos y App Builder. Las opciones de instalación son Homebrew mediante el tap datadog-labs/pack, compilación desde el código fuente con Cargo o descarga de binarios precompilados desde releases. La autenticación admite tres métodos en orden de prioridad: un token bearer sin estado mediante DD_ACCESS_TOKEN, tokens OAuth2 obtenidos a través de `pup auth login` y claves de API mediante DD_API_KEY y DD_APP_KEY. OAuth2 utiliza inicio de sesión basado en navegador con actualización automática de tokens y requiere Dynamic Client Registration en el sitio de Datadog. Se pueden almacenar múltiples sitios y organizaciones como sesiones nombradas separadas y seleccionarlas con --org o DD_ORG; la resolución del sitio sigue DD_SITE, luego el sitio de la sesión registrada y después datadoghq.com. Los tokens se almacenan en el almacén seguro de la plataforma (macOS Keychain, Linux Secret Service, Windows Credential Manager) con un respaldo basado en archivos bajo ~/.config/pup/ usando permisos 0600, que se puede sobrescribir mediante DD_TOKEN_STORAGE o configuración. El uso de ejemplo mostrado en el README incluye `pup monitors list --tags="team:api-platform"`, `pup logs search --query="status:error" --from="1h"` y `pup metrics query --query="avg:system.cpu.user{*}"`. Una referencia canónica de comandos se encuentra en docs/COMMANDS.md, y `pup --help` o `pup agent schema` proporciona la lista de comandos en vivo. Algunas áreas se señalan como aún no implementadas, como profiling, powerpacks, listado de roles y lista de permitidos de IP. El proyecto tiene licencia Apache 2.0 y está escrito en Rust.