À propos du projet

Pup est une interface en ligne de commande publiée par Datadog qui expose une large partie de la plateforme d'observabilité Datadog via un outil unique. Le README le présente comme un CLI "prêt pour les agents IA" : les commandes sont auto-découvrables, la sortie peut être structurée en JSON ou YAML pour l'analyse, et l'authentification prend en charge OAuth2 avec PKCE et portées plutôt que uniquement des clés à longue durée de vie. Les humains peuvent également l'utiliser. La couverture s'étend à de nombreux domaines produits. L'observabilité de base comprend les métriques (V1 et V2), les logs, les événements, RUM (applications, sessions, événements, métriques, filtres de rétention, playlists de replay, audience, heatmaps), les services et entités APM, les traces, les échantillons de monitoring de bases de données et le replay de session. Le monitoring et les alertes couvrent les monitors, dashboards, SLOs, synthetics, downtimes, notebooks, pages de statut, automatisation de workflows et runbooks locaux définis en YAML avec des types d'étapes pup/shell/http/workflow. La sécurité et la conformité incluent les règles/signaux/résultats de monitoring de sécurité, les résultats de sécurité cloud et applicative via DDSQL, l'analyse statique, les journaux d'audit, la gouvernance des données, la gouvernance des tags, les menaces CSM, l'analyse sans agent pour AWS/GCP/Azure, les requêtes de restriction de logs et les demandes de suppression de données. Les commandes d'infrastructure et de cloud couvrent les hosts, tags, flux et appareils réseau, les intégrations AWS/GCP/Azure/OCI, les conteneurs et les processus. Les outils d'incident et d'exploitation incluent les incidents, les équipes et pages d'astreinte, la gestion des cas avec liaison Jira/ServiceNow, le suivi des erreurs, le catalogue de services, les scorecards, l'automatisation de flotte, les connexions HAMR, les investigations, la gestion des changements, les histoires de changement, les sondes de débogage en direct et les entités du catalogue logiciel. La couverture CI/CD et développement inclut la visibilité CI, l'optimisation des tests et les tests flaky, les métriques DORA, les résumés de couverture de code et les portes de déploiement. Les commandes d'organisation et d'accès gèrent les utilisateurs, organisations, clés API, clés d'application et mappages AuthN. Les zones de plateforme et de configuration incluent la mesure d'utilisation, la gestion des coûts et Cloud Cost Management, l'analyse produit, les intégrations tierces, les feature flags, les flux de données Kafka (expérimental), les ensembles de données restreints, les pipelines d'observabilité, l'observabilité LLM, les tables de référence, les points de terminaison divers et App Builder. Les options d'installation sont Homebrew via le tap datadog-labs/pack, la compilation à partir des sources avec Cargo, ou le téléchargement de binaires précompilés depuis les releases. L'authentification prend en charge trois méthodes par ordre de priorité : un jeton bearer sans état via DD_ACCESS_TOKEN, des jetons OAuth2 obtenus via `pup auth login`, et des clés API via DD_API_KEY et DD_APP_KEY. OAuth2 utilise une connexion basée sur navigateur avec actualisation automatique du jeton et nécessite l'enregistrement dynamique du client sur le site Datadog. Plusieurs sites et orgs peuvent être stockés comme sessions nommées distinctes et sélectionnés avec --org ou DD_ORG ; la résolution du site suit DD_SITE, puis le site de session enregistré, puis datadoghq.com. Les jetons sont stockés dans le magasin sécurisé de la plateforme (Trousseau macOS, Secret Service Linux, Gestionnaire d'informations d'identification Windows) avec un repli basé sur fichier sous ~/.config/pup/ avec des permissions 0600, remplaçable via DD_TOKEN_STORAGE ou la configuration. Les exemples d'utilisation dans le README incluent `pup monitors list --tags="team:api-platform"`, `pup logs search --query="status:error" --from="1h"`, et `pup metrics query --query="avg:system.cpu.user{*}"`. Une référence canonique des commandes se trouve dans docs/COMMANDS.md, et `pup --help` ou `pup agent schema` fournit la liste des commandes en direct. Certaines zones sont notées comme non encore implémentées, telles que le profilage, les powerpacks, la liste des rôles et la liste blanche IP. Le projet est sous licence Apache 2.0 et écrit en Rust.