Planung

Änderungskosten

Die geplanten monatlichen Kosten jeder Terraform-Änderung mit den Kosten vergleichen, die nach dem Anwenden gemessen werden, und die Schätzungen aus der CI über die Public API senden.

Änderungskosten stellt neben das, was eine Infrastrukturänderung im Monat kosten sollte, was sie nach dem Anwenden gemessen kostet. Die CI sendet die Schätzung jedes Pull Requests oder benannten Plans, etwa die von Infracost, über die Public API und meldet den Tag, an dem die Änderung angewendet wird. Sobald die 30 Tage ab diesem Tag Kostendaten haben, findet Costfluent jede Ressource, die die Änderung betrifft, über ihre IDs in deinen Abrechnungsdaten und misst sie. Eine Schätzung ist eine Aussage über einen Plan, keine Kosten: Costfluent speichert ihre Zahlen wie gesendet, bepreist selbst nichts und zählt sie in keinem Bericht, Budget, keiner Prognose und keiner Anomalie mit. Öffne Änderungskosten unter Planung.

Bevor du beginnst

Enthalten im Pro-, Business- und Custom-Tarif. Tarife vergleichen

  • Jede Teamrolle kann die Seite ansehen und ihre Schätzungen öffnen.
  • Schätzungen kommen nur über die Public API an, gesendet mit einem API-Token, das für den Workspace Kostenschätzungen übermitteln trägt; siehe Schätzung senden.
  • Eine Schätzung wird an den Kosten der Verbindungen gemessen, die der Workspace nutzt, und ihrer Konten; siehe Verbindungen verwalten.

Die Liste lesen

Die Seite Änderungskosten mit Schätzungen nach Änderung, mit geplanten und tatsächlichen monatlichen Kosten, Abweichung und Status

Jede Änderung mit ihren geplanten und tatsächlichen monatlichen Kosten, der Abweichung und ihrem Status.

Jede Zeile ist eine Schätzung, ihre Zahlen in der Währung, in der sie gesendet wurde:

  • Änderung nennt den Pull Request, als Repository und Nummer wie acme/infrastructure#42, oder den Plan, für den die Schätzung gesendet wurde, und darunter das Schätzwerkzeug.
  • Geplant ist die geschätzte Änderung der monatlichen Kosten, nachher weniger vorher, über die Ressourcen, die das Schätzwerkzeug bepreist hat, mit einem Pluszeichen, wenn die Änderung mehr kostet. Wurden einige nicht bepreist, zählt die Spalte sie darunter, etwa „… Ressourcen nicht bepreist“, statt sie als kostenlos zu lesen.
  • Tatsächlich ist die gemessene Änderung der monatlichen Kosten, sobald die Schätzung abgeglichen ist. Bis dahin steht dort „Noch nicht angewendet“ bei einer vorgeschlagenen Schätzung und „Wartet auf Kostendaten“ bei einer angewendeten.
  • Abweichung ist die tatsächliche Änderung weniger der geplanten: Über null kostet die Änderung im Monat mehr als geplant.
  • Status sagt, wo die Schätzung steht:
StatusDie Schätzung
„Vorgeschlagen“Wurde gesendet und ist noch nicht angewendet. Jedes Senden für denselben Pull Request oder Plan ersetzt sie.
„Angewendet“Hält den Tag fest, an dem die Änderung angewendet wurde, und wartet auf ihre Kostendaten.
„Abgeglichen“Wurde gemessen, daher stehen in Tatsächlich und Abweichung Zahlen.
„Nicht aussagekräftig“Ließ sich nicht messen und sagt, warum (Nicht aussagekräftige Schätzungen).
„Abgelaufen“Wurde nicht innerhalb von 90 Tagen nach dem letzten Senden angewendet.

Eine Schätzung öffnen

Wähle die Änderung einer Schätzung, um sie zu öffnen. Ihre Seite zeigt die Geplante Änderung, die Tatsächliche Änderung und die Abweichung, warum die Schätzung so abgeschlossen wurde, sobald sie es ist, und, solange sie angewendet ist, „Wird gemessen, sobald Kostendaten die 30 Tage nach dem Anwenden abdecken“. Darunter stehen ihre Quelle, ihr Commit, der Tag unter Angewendet am und, wenn sie mit einer https-Adresse gesendet wurde, „Änderung öffnen“, ein Link zum Pull Request oder Plan. Unter Ressourcen steht eine Zeile je Ressource:

  • Ressource ist ihre Terraform-Adresse und ihr Typ und Änderung, was die Änderung mit ihr tut: „Erstellt“, „Geändert“, „Ersetzt“ oder „Gelöscht“.
  • Geplant sind die monatlichen Kosten, die das Schätzwerkzeug der Ressource vor und nach der Änderung gegeben hat. Eine erstellte Ressource hat vorher keine Kosten, eine gelöschte nachher keine. Kosten, die das Schätzwerkzeug nicht bepreisen konnte, zeigen „Nicht bepreist“, nie null, und lassen die Ressource aus den geplanten Summen heraus.
  • Tatsächlich sind die monatlichen Kosten, die der Abgleich vor und nach der Änderung gemessen hat, für eine Ressource, die er gefunden hat; für eine, die er nicht gefunden hat, steht dort „Nicht gefunden“ oder „Keine Kosten gefunden“.
  • In der Abrechnung sagt, wie der Abgleich die Ressource gefunden hat:
In der AbrechnungDie Ressource
„Gefunden“Wurde in der Abrechnung gefunden, in jedem Zeitraum, in dem das Schätzwerkzeug ihr andere Kosten als null gegeben hat. Ihre gemessenen Kosten zählen in den tatsächlichen Summen der Schätzung.
„Nicht gefunden“Hat unter ihren IDs keine Kosten in einem Zeitraum, in dem das Schätzwerkzeug ihr andere Kosten als null gegeben hat, oder hat keine IDs. Eine solche Ressource macht die Schätzung „Nicht aussagekräftig“.
„Keine Kosten“Sollte nichts kosten oder wurde nicht bepreist und hat in der Abrechnung keine Kosten. Sie hält den Abgleich nicht auf.

Eine gelöschte Ressource, deren Kosten mit dem Anwenden aufhörten, ist danach mit null „Gefunden“; die Schätzung wird nur abgeglichen, solange die Konten, die ihre Kosten trugen, weiter Kosten melden (Nicht aussagekräftige Schätzungen).

Wie eine Schätzung abgeglichen wird

Costfluent prüft die offenen Schätzungen einmal am Tag.

  • Die Zeiträume. Das Anwendungsdatum ist der Tag, an dem das Anwenden gemeldet wurde, in der Zeitzone des Workspace. Costfluent misst die 30 Tage davor und die 30 Tage ab ihm, das Anwendungsdatum eingeschlossen. Die Tage davor zählen nur für Ressourcen, die die Änderung ändert, ersetzt oder löscht, denn eine erstellte Ressource hatte vorher keine Kosten.
  • Die Ressourcen. Vor der Änderung wird eine geänderte, ersetzte oder gelöschte Ressource unter den IDs gefunden, die mit der Schätzung gesendet wurden. Danach wird eine erstellte oder ersetzte Ressource unter den IDs gefunden, die mit dem Anwenden gemeldet wurden, eine geänderte unter ihren bisherigen IDs, und von einer gelöschten wird unter ihren alten IDs nichts mehr erwartet. Die IDs werden ohne Rücksicht auf Groß- und Kleinschreibung mit den Ressourcen-IDs in deinen Abrechnungsdaten verglichen, sodass eine Ressource, die unter einer anderen ID abgerechnet wird, „Nicht gefunden“ ist.
  • Die Kosten. Tatsächliche Zahlen sind amortisierte Kosten, bei denen Commitments wie Reserved Instances und Savings Plans auf die Nutzung verteilt sind, die sie abdecken (Berechnete oder effektive Kosten), sodass eine Nutzung, die ein Commitment abdeckt, nicht als kostenlos erscheint.
  • Ein Monat. Die Kosten eines Zeitraums werden durch seine 30 Tage geteilt und mit einem Monat von einem Zwölftel des Jahres, 365/12 Tagen, malgenommen. Das ist der Monat von 730 Stunden, mit dem Infracost bepreist, sodass geplante und tatsächliche Zahlen auf derselben Skala stehen.
  • Das Warten auf Daten. Eine angewendete Schätzung wird gemessen, sobald die 30 Tage ab dem Anwendungsdatum vorbei sind und die Kostendaten jeder Verbindung mit Kosten in ihren Zeiträumen bis zum letzten dieser Tage reichen. Bis dahin bleibt sie „Angewendet“, höchstens 90 Tage ab dem Anwenden.
  • Abdeckung. Ein Zeitraum, der laut Plan Kosten enthalten sollte, zählt nur mit Kosten an mindestens 24 seiner 30 Tage, 80 %, über die Ressourcen der Schätzung hinweg. Ein Zeitraum mit Kosten an weniger Tagen schließt die Schätzung als „Nicht aussagekräftig“; einer ohne Kosten lässt seine Ressourcen „Nicht gefunden“.
  • Währung. Tatsächliche Zahlen stehen in der Währung der Schätzung. Kosten, die in einer anderen Währung abgerechnet wurden, werden zum Wechselkurs des Workspace am Anwendungsdatum umgerechnet, nach der Methode und Quelle, mit denen seine Berichte umrechnen (Währungseinstellungen): ein Kurs für beide Zeiträume, damit eine Kursbewegung zwischen ihnen nicht als Kostenänderung erscheint.
  • Die Summen. Die geplanten Summen zählen die bepreisten Ressourcen, die tatsächlichen die Ressourcen, die „Gefunden“ sind. Eine Ressource, die das Schätzwerkzeug nicht bepreist hat, die aber in der Abrechnung steht, zählt in Tatsächlich, sodass ihre Kosten als Abweichung erscheinen.

Geplant und tatsächlich stehen auf verschiedenen Grundlagen, die die Seite jeder Schätzung nennt. Geplant ist der Listenpreis des Schätzwerkzeugs; tatsächlich sind die amortisierten Kosten nach deinen Rabatten. Ein ausgehandelter Rabatt oder ein Commitment, das eine von der Änderung erstellte Ressource abdeckt, erscheint daher als Abweichung, auch wenn die Änderung genau wie geplant verlief.

Nicht aussagekräftige Schätzungen

Eine nicht aussagekräftige Schätzung behält ihre geplanten Zahlen und sagt, warum sie sich nicht messen ließ:

GrundWann
„Eine Ressource, die etwas kosten sollte, wurde in der Abrechnung nicht gefunden.“Eine Ressource, der das Schätzwerkzeug in einem Zeitraum andere Kosten als null gegeben hat, hat dort unter ihren IDs keine Kosten oder hat keine IDs, etwa eine erstellte Ressource, für die das Anwenden keine IDs genannt hat.
„Ihre Kosten wurden in mehr als einer Währung abgerechnet.“Die in den beiden Zeiträumen gefundenen Kosten kamen in mehr als einer Abrechnungswährung.
„Ihre Kosten wurden in einer Währung abgerechnet, für die der Arbeitsbereich keinen Wechselkurs hat.“Die Kosten kamen in einer anderen Währung als der der Schätzung, und die Kurse des Workspace enthalten am Anwendungsdatum keinen Kurs aus ihr in die Währung der Schätzung.
„Ein Zeitraum hatte an weniger als 24 seiner 30 Tage Kosten.“Ein Zeitraum, der laut Plan Kosten enthalten sollte, hat an einigen seiner Tage Kosten, aber an weniger als 24.
„Das Konto einer gelöschten Ressource meldete keine Kosten mehr, sodass sich ihre Löschung nicht davon unterscheiden ließ.“Eine gelöschte Ressource zeigt nach dem Anwenden keine Kosten, und ein Konto, das vorher ihre Kosten trug, meldet an weniger als 24 der 30 Tage ab dem Anwenden irgendwelche Kosten, sodass sich ihre Löschung nicht von Kosten unterscheiden lässt, die nicht mehr ankommen.
„Die Kostendaten deckten die 30 Tage nach dem Anwenden nicht innerhalb von 90 Tagen ab.“90 Tage nach dem Anwenden reichten die Kostendaten noch nicht durch die 30 Tage ab ihm.

Schätzung senden

  1. Erstelle für den Workspace ein API-Token, das nur Kostenschätzungen übermitteln trägt, wie API-Authentifizierung beschreibt, und bewahre es in den Secrets deiner CI auf.
  2. Sende bei jedem Push in den Pull Request die Schätzung an POST /v1/cost-estimates: die ID des Workspace, repository und die Nummer unter pullRequest oder stattdessen einen Namen unter plan, das Schätzwerkzeug als source, die currency und unter resources einen Eintrag je Ressource. Jeder nennt ihre Terraform-address, ihren type, ihre change (create, update, replace oder delete) und ihre monthlyCostBefore und monthlyCostAfter als Dezimal-Strings oder null, wo das Schätzwerkzeug sie nicht bepreisen konnte. Eine geänderte, ersetzte oder gelöschte Ressource ergänzt bis zu drei resourceIds, die sie vor der Änderung hatte.
  3. Melde nach dem Anwenden der Änderung mit POST /v1/cost-estimates/apply, dass sie angewendet wurde, mit demselben Repository und Pull Request oder Plan und unter resources den ein bis drei IDs, die jede erstellte oder ersetzte Ressource bekommen hat.

Eine Schätzung, gespeichert als estimate.json:

JSONCode
{ "workspaceId": "wsp_example", "repository": "acme/infrastructure", "pullRequest": 42, "source": "infracost", "commit": "9f2c4e1", "url": "https://github.com/acme/infrastructure/pull/42", "currency": "USD", "resources": [ { "address": "aws_instance.web", "type": "aws_instance", "change": "update", "monthlyCostBefore": "60.74", "monthlyCostAfter": "121.47", "resourceIds": ["i-0abc123def4567890"] }, { "address": "aws_db_instance.main", "type": "aws_db_instance", "change": "create", "monthlyCostAfter": "248.20" }, { "address": "aws_lambda_function.resize", "type": "aws_lambda_function", "change": "create", "monthlyCostAfter": null } ] }

Sende sie:

TerminalCode
curl -X POST \ -H "Authorization: Bearer $COSTFLUENT_API_TOKEN" \ -H "Content-Type: application/json" \ -d @estimate.json \ https://api.costfluent.com/v1/cost-estimates

Melde das Anwenden mit den IDs, die die neue Datenbank bekommen hat:

TerminalCode
curl -X POST \ -H "Authorization: Bearer $COSTFLUENT_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"workspaceId": "wsp_example", "repository": "acme/infrastructure", "pullRequest": 42, "resources": [{"address": "aws_db_instance.main", "resourceIds": ["arn:aws:rds:eu-central-1:123456789012:db:main"]}]}' \ https://api.costfluent.com/v1/cost-estimates/apply

Das erste Senden für einen Pull Request oder Plan legt seine Schätzung an und antwortet mit 201; jedes spätere ersetzt sie ganz und antwortet mit 200, bis die Änderung angewendet ist. Beide Aufrufe antworten nur mit der id der Schätzung, ihrem state und, sobald sie angewendet ist, appliedOn, nie mit ihren Zahlen, sodass ein Token, das nur Kostenschätzungen übermitteln trägt, keine Kosten liest. Ein Token mit viewCosts listet Schätzungen über GET /v1/cost-estimates und liest eine mit ihren Ressourcen und gemessenen Zahlen über GET /v1/cost-estimates/{estimateId}; siehe die API-Referenz.

Wie es sich verhält

  • Sobald eine Schätzung nicht mehr „Vorgeschlagen“ ist, antwortet ein Senden für ihren Pull Request oder Plan mit 409; sende die nächste Änderung unter ihrem eigenen Pull Request oder Plannamen. Ein wiederholtes Anwenden mit denselben IDs ändert nichts; mit anderen IDs antwortet es mit 409. Ein Anwenden für einen Pull Request oder Plan, für den der Workspace keine Schätzung enthält, antwortet mit 404.
  • Ein Anwenden hält den Tag fest, an dem es gemeldet wird, in der Zeitzone des Workspace. Es übernimmt IDs nur für die Ressourcen, die die Schätzung erstellt oder ersetzt, und übergeht die übrigen Adressen, die es nennt, etwa kostenlose Ressourcen, die das Schätzwerkzeug ausgelassen hat.
  • Eine vorgeschlagene Schätzung läuft 90 Tage nach ihrem letzten Senden ab, sodass ein Pull Request, in den weiter gepusht wird, seine Schätzung behält.
  • Eine Schätzung nennt 1 bis 2.000 Ressourcen, jede mit höchstens drei IDs von höchstens 512 Zeichen, und ein Anfragekörper ist höchstens 5 MiB groß. Die url muss eine https-Adresse sein; Costfluent verlinkt sie und ruft sie nie ab.
  • Ein Workspace enthält höchstens 1.000 Schätzungen, die „Vorgeschlagen“ oder „Angewendet“ sind. Eine neue Schätzung darüber hinaus wird mit 422 abgelehnt, während ein Senden für eine offene sie weiterhin ersetzt.
  • Eine Schätzung, die statt mit Ressourcen-IDs mit einem tag gesendet wird, für eine Änderung, die diesen Tag an jeder Ressource trägt, die sie erstellt oder ändert, wird als Ganzes an diesem Tag gemessen: Ihre Summen bekommen tatsächliche Zahlen, ihre Ressourcen keine.

Verwandte Seiten