Profitez de l'aperçu !
Custom Costs est en aperçu.
Présentation
Custom Costs vous permet de charger n’importe quelle source de données de coûts vers Datadog, afin que vous puissiez comprendre le coût total de vos services.
Custom Costs accepte les coûts dans des structures de fichiers prédéfinies (CSV ou JSON). Ces fichiers sont alignés sur la spécification FinOps FOCUS, et vous pouvez charger plusieurs fichiers dans l’un ou l’autre format. Par exemple, vous pouvez charger un mélange de fichiers CSV ou JSON selon vos besoins avec 1 ligne ou plus (lignes pour CSV ou objets pour JSON).
Toutes les lignes doivent répondre aux exigences suivantes et inclure les propriétés ci-dessous :
- Tous les noms de colonnes (CSV), noms de propriétés (JSON) et valeurs sont encodés en UTF-8.
- Tous les noms de colonnes requis (CSV) ou noms de propriétés (JSON) sont en PascalCase. Par exemple, vous devez utiliser
"ProviderName", pas "providername" ou "ProviderNAME". - Tous les noms de colonnes (CSV) et valeurs ou noms de propriétés (JSON) et valeurs ont un maximum de 1 000 caractères.
- Les valeurs de paramètre NULL ou vides ("") ne sont pas acceptées.
De plus, toutes les dates sont transformées en timestamps UTC. Par exemple, « 2024-01-01 » devient « 2024-01-01 00:00:00 ».
Configuration
Pour utiliser Custom Costs dans Datadog, vous devez configurer Cloud Cost Management pour AWS, Azure, Google Cloud ou Oracle Cloud, même si vos coûts personnalisés ne sont liés à aucun de ces fournisseurs de cloud. Cette configuration est requise pour activer la fonctionnalité Custom Costs.
Collecter les champs requis
| Paramètre | Rôle | Exemple valide | Exemple non valide | Exigences supplémentaires |
|---|
ProviderName | Le service consommé. | Snowflake | "" ou NULL | |
ChargeDescription | Identifie l’aspect d’un service qui est facturé. | Database Costs | "" ou NULL | |
ChargePeriodStart | Jour de début d’un coût. | 2023-09-01 | 2023-01-01 12:34:56 | Formaté en AAAA-MM-JJ, où ChargePeriodStart <= ChargePeriodEnd. |
ChargePeriodEnd | Dernier jour d’un coût (inclus). | 2023-09-30 | 01/01/2023 | Formaté en AAAA-MM-JJ. |
BilledCost | Le montant facturé. | 10.00 | NaN | Décimal basé sur des nombres. |
BillingCurrency | Devise du coût facturé. | USD | EUR | Doit être en USD. |
Créer un fichier CSV ou JSON avec des champs obligatoires
Vous pouvez charger plusieurs fichiers CSV et JSON, dans l’un ou les deux formats. Assurez-vous de ne pas charger le même fichier deux fois, car le coût apparaîtra comme doublé dans le produit.
Les champs requis doivent apparaître en tant que colonnes dans votre CSV dans l’ordre indiqué ci-dessus. Vous devez utiliser une virgule (,) comme séparateur pour votre CSV.
Exemple de CSV valide :
| ProviderName | ChargeDescription | ChargePeriodStart | ChargePeriodEnd | BilledCost | BillingCurrency |
|---|
| GitHub | User Costs | 2023-01-01 | 2023-01-31 | 300.00 | USD |
Exemple de CSV non valide (ChargePeriodStart est listé avant ChargeDescription) :
| ProviderName | ChargePeriodStart | ChargeDescription | ChargePeriodEnd | BilledCost | BillingCurrency |
|---|
| GitHub | 2023-01-01 | User Costs | 2023-01-31 | 300.00 | USD |
Les champs requis doivent apparaître dans tous les objets d’un fichier JSON respectant la norme ECMA-404 et tous les objets doivent être encapsulés par un tableau.
Exemple de fichier JSON valide :
[
{
"ProviderName": "Zoom",
"ChargeDescription": "Video Usage",
"ChargePeriodStart": "2023-01-01",
"ChargePeriodEnd": "2023-12-31",
"BilledCost": 100.00,
"BillingCurrency": "USD"
}
]
Exemple de fichier JSON non valide :
[
{
"providername": "Zoom",
"chargedescription": "Video Usage",
"chargeperiodstart": "2023-01-01",
"chargeperiodend": "2023-12-31",
"billedcost": 100.00,
"billingcurrency": "USD"
}
]
Vous pouvez éventuellement ajouter n’importe quel nombre de tags aux fichiers CSV ou JSON pour allouer les coûts après les champs requis en tant que colonnes supplémentaires.
Pour un fichier CSV, ajoutez une colonne par tag.
Exemple de fichier CSV valide :
| ProviderName | ChargePeriodStart | ChargeDescription | ChargePeriodEnd | BilledCost | BillingCurrency | team | service |
|---|
| GitHub | 2023-01-01 | User Costs | 2023-01-31 | 300.00 | USD | web | ops |
Dans cet exemple, les colonnes team et service sont ajoutées après la colonne BillingCurrency et apparaissent en tant que tags sur ce coût.
Pour un fichier JSON, ajoutez une propriété d’objet Tags pour encapsuler tous les tags souhaités associés à ce coût.
Exemple de fichier JSON valide :
[
{
"ProviderName": "Zoom",
"ChargeDescription": "Video Usage",
"ChargePeriodStart": "2023-01-01",
"ChargePeriodEnd": "2023-12-31",
"BilledCost": 100.00,
"BillingCurrency": "USD",
"Tags": {
"team": "web",
"service": "ops"
}
}
]
Dans cet exemple, une propriété d’objet Tags supplémentaire a été ajoutée avec deux paires clé-valeur pour allouer les tags team et service à ce coût.
Une fois que vos données sont formatées selon les exigences ci-dessus, chargez vos fichiers CSV et JSON vers Cloud Cost Management sur la page Custom Costs Files ou par programmation en utilisant l’API.
Dans Datadog :
Accédez à Cloud Cost > Settings > Custom Costs.
Cliquez sur le bouton + Upload Costs.
Pour envoyer un fichier par programmation, utilisez le endpoint d’API PUT api/v2/cost/custom_costs.
Par exemple, en utilisant cURL :
curl -L -X PUT "" \
-H "Content-Type: multipart/form-data" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
-F "file=${file};type=text/json"
Pour envoyer le contenu du fichier par programmation, utilisez le endpoint PUT api/v2/cost/custom_costs.
Par exemple, en utilisant cURL :
curl -L -X PUT "" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
-d '${file_content}'
Les données de coûts apparaissent dans Datadog après 24 heures.
Types de métriques de coûts
Vous pouvez visualiser vos données ingérées en utilisant les types de coûts suivants :
| Type de coût | Rôle |
|---|
custom.cost.amortized | Coût total des ressources accumulées sur un intervalle. |
custom.cost.basis | Coût total des ressources allouées au moment de l’utilisation sur un intervalle. |
Tous les coûts soumis à Custom Costs apparaissent dans ces métriques. Par exemple, si un achat de 4 $ a été effectué le 1er septembre, sur la période du 1er au 4 septembre, les coûts suivants sont attribués à chaque métrique :
| Jours | custom.cost.basis | custom.cost.amortized |
|---|
| 1er septembre | 4 $ | 1 $ |
| 2 septembre | - | 1 $ |
| 3 septembre | - | 1 $ |
| 4 septembre | - | 1 $ |
Utiliser les données Custom Costs
Vous pouvez consulter les données de coûts personnalisés sur la page Cloud Cost Explorer, le Cloud Cost Tag Explorer, et dans les dashboards, notebooks ou monitors. Vous pouvez également combiner les métriques Custom Cost avec d’autres métriques de coûts cloud ou métriques d’observabilité.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: