Lieber ohne Einrichtung? Nutze die Ausgaben-Vorlagen
Wenn du nur deine AWS-Rechnung auf dem Home-Bildschirm sehen willst, brauchst du kein Dashboard. Aktiviere die Fakturierungsmetriken (Schritt 1) und füge dann die Ausgaben-Vorlagen von CloudPeek mit Widget erstellen › Vorlage hinzu. Zusammen zeigen sie alles, was das Dashboard unten zeigt:
| Dashboard-Widget | Vorlage | Unterschied |
|---|---|---|
| Top 5 Services nach Ausgaben | Ausgaben nach Service | Alle Services, die größten zuerst; was nicht passt, wird zu „Sonstige“ zusammengezählt. Der Gesamtwert ist die Summe der Services, nicht deine gesamte Rechnung. |
| Ausgaben im laufenden Monat | Ausgaben im laufenden Monat | Identisch. |
| Ausgaben der letzten 7 Tage | Tägliche Ausgaben nach Konto | Identisch; in einem Verwaltungskonto von AWS Organizations ist jede Säule nach Konto gestapelt, und die Vorlage kann auch 2 Wochen, 30 Tage oder den laufenden Monat zeigen. |
| Ausgabenanteile der Top 5 Services | Ausgabenanteile | Alle Services, nicht nur fünf. |
Die Vorlagen bieten außerdem Prognose zum Monatsende, Ausgaben und Prognose, Tägliche Ausgaben nach Service, Tabelle der täglichen Ausgaben und Ausgabentrend: siehe Vorlagen. Erstelle stattdessen das Dashboard, wenn du feste Top 5, deine gesamte Rechnung als Gesamtwert, dieselben Widgets in der CloudWatch-Konsole oder ein Dashboard möchtest, das du in CloudFormation oder Terraform pflegst.
Was du baust
Du erstellst ein CloudWatch-Dashboard namens CloudPeek-Spend mit vier Widgets. Das erste ist ein Balkendiagramm der fünf Services, für die du in diesem Monat bisher am meisten ausgegeben hast, automatisch ermittelt, mit dem Gesamtwert deines Kontos. Das zweite zeigt diesen Gesamtwert des laufenden Monats mit einer Sparkline der vergangenen Woche. Das dritte zeigt, was du an jedem der letzten 7 Tage ausgegeben hast, eine Säule pro Tag, und das vierte ist ein Kreisdiagramm, das zeigt, wie sich die Ausgaben auf deine Top 5 Services verteilen. In CloudPeek sehen sie so aus:
In der AWS-Konsole dauert das etwa 15 Minuten, mit CloudFormation oder Terraform ist es ein einziges Deployment. Wähle dein Werkzeug in jedem Schritt über die Tabs aus.
Bevor du anfängst
- Ein AWS-Konto und eine Anmeldung, die Fakturierungseinstellungen ändern sowie CloudWatch-Dashboards, IAM-Benutzer und -Richtlinien erstellen darf, z. B. die eines Administrators. Wenn deine Konten in AWS Organizations sind, nutze das Verwaltungskonto, um die Ausgaben der gesamten Organisation zu sehen.
- CloudPeek auf deinem iPhone, iPad oder Android-Smartphone.
Was es kostet. Fakturierungsmetriken sind kostenlos. Das kostenlose Kontingent von CloudWatch umfasst drei Dashboards; darüber hinaus kostet jedes Dashboard 3 USD im Monat. Beim Aktualisieren ruft CloudPeek GetMetricData auf, was AWS mit 0,01 USD pro 1.000 Metriken berechnet. AWS aktualisiert Fakturierungsmetriken nur wenige Male am Tag, daher werden diese Widgets höchstens alle 3 Stunden aktualisiert: Sind alle vier angeheftet, sind das etwa 15 Metriken pro Aktualisierung, also etwa 4 Cent im Monat. Die Einstellungen schätzen das unter Aktualisieren für deine eigenen Widgets. Siehe CloudWatch-Preise.
1. Fakturierungsmetriken aktivieren
AWS sendet deine geschätzten Gebühren erst an CloudWatch, wenn du das aktivierst. Das machst du einmal pro Konto in der Konsole: CloudFormation, Terraform und die AWS CLI können diese Einstellung nicht ändern.
- Melde dich bei der AWS-Konsole an und öffne Fakturierung und Kostenmanagement › Fakturierungseinstellungen.
- Wähle unter Warnungseinstellungen Bearbeiten.
- Markiere CloudWatch-Fakturierungswarnungen erhalten und speichere die Änderung.
Geschätzte Gebühren werden mehrmals täglich in der Region USA Ost (Nord-Virginia), us-east-1, veröffentlicht. Sie zählen ab Monatsbeginn und fangen deshalb jeden Monat wieder bei null an. Bis die ersten Daten erscheinen, können einige Stunden vergehen. Wenn du nicht als Root-Benutzer angemeldet bist, muss das Konto außerdem IAM-Zugriff auf Fakturierungsinformationen erlauben (unter Konto › IAM-Benutzer- und Rollenzugriff auf Fakturierungsinformationen).
Bis die ersten Daten eintreffen, zeigt das Dashboard, das du als Nächstes erstellst, Keine Daten verfügbar, und die Ausgaben-Widgets von CloudPeek zeigen „Aktiviere die CloudWatch-Fakturierungswarnungen in der Billing-Konsole. Ausgaben erscheinen innerhalb eines Tages.“ (auf einem kleinen Widget „Aktiviere die CloudWatch-Fakturierungswarnungen.“). Um zu prüfen, ob die Fakturierungsmetriken angekommen sind, öffne CloudWatch in us-east-1 und wähle Metriken › Alle Metriken: Sobald es so weit ist, erscheint ein Namespace Billing. Metrics Explorer listet keine Fakturierungsmetriken auf, sieh also unter „Alle Metriken“ nach.
In AWS Organizations gibt es Fakturierungsmetriken nur im Verwaltungskonto, das die Gebühren aller Konten enthält, aufgeschlüsselt nach Konto (Ausgaben nach Konto). Die anderen Konten haben keine. Aktiviere die Fakturierungswarnungen also im Verwaltungskonto und füge es für Ausgaben-Widgets zu CloudPeek hinzu. In einem Konto, bei dem du dich mit IAM Identity Center angemeldet hast und das nicht das Verwaltungskonto ist, zeigen die Ausgaben-Widgets von CloudPeek „Die Ausgaben dieses Kontos stehen im Verwaltungskonto deiner Organisation.“ (auf einem kleinen Widget „Ausgaben stehen in deinem Verwaltungskonto.“). CloudPeek erkennt das Verwaltungskonto daran, ob es die Konten der Organisation auflisten kann (organizations:ListAccounts, in der Richtlinie von CloudPeek). Gib der Anmeldung des Verwaltungskontos deshalb diese Berechtigung.
2. Dashboard erstellen
- Öffne die CloudWatch-Konsole in us-east-1 und wähle Dashboard erstellen.
- Nenne es
CloudPeek-Spendund wähle Dashboard erstellen. Wenn sich das Fenster Widget hinzufügen öffnet, schließe es. - Wähle Aktionen › Quelle anzeigen/bearbeiten, ersetze die Quelle durch das Dashboard-JSON und wähle Aktualisieren.
- Wähle Speichern.
Lade spend-by-service.json herunter (es ist unten vollständig abgebildet) und führe dann Folgendes aus:
aws cloudwatch put-dashboard \
--region us-east-1 \
--dashboard-name CloudPeek-Spend \
--dashboard-body file://spend-by-service.json
Ein einziges Template erstellt das Dashboard und dazu die CloudPeek-Richtlinie und den IAM-Benutzer aus Schritt 3. Hier ist die Dashboard-Ressource:
Dashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: !Ref DashboardName
DashboardBody: !Sub |
{
"start": "-P7D",
"widgets": [
{
"type": "metric",
"x": 0,
"y": 0,
"width": 12,
"height": 8,
"properties": {
"title": "Top ${TopServices} services by spend",
"view": "bar",
"region": "us-east-1",
"start": "-P1D",
"stat": "Maximum",
"period": 21600,
"metrics": [
[ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "label": "Total" } ],
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${Currency}\"', 'Maximum', 21600), MAX, DESC, ${TopServices})", "label": "${!PROP('Dim.ServiceName')}", "id": "top" } ]
]
}
},
{
"type": "metric",
"x": 12,
"y": 0,
"width": 6,
"height": 8,
"properties": {
"title": "Month-to-date spend",
"view": "singleValue",
"region": "us-east-1",
"stat": "Maximum",
"period": 21600,
"sparkline": true,
"metrics": [
[ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "label": "Total" } ]
]
}
},
{
"type": "metric",
"x": 18,
"y": 0,
"width": 6,
"height": 8,
"properties": {
"title": "Last 7 days' spend",
"view": "timeSeries",
"region": "us-east-1",
"start": "-P7D",
"stat": "Maximum",
"period": 86400,
"yAxis": { "left": { "min": 0 } },
"metrics": [
[ { "expression": "IF(DIFF(m1) < 0, m1, DIFF(m1))", "label": "Spend", "id": "daily" } ],
[ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "id": "m1", "visible": false } ]
]
}
},
{
"type": "metric",
"x": 0,
"y": 8,
"width": 12,
"height": 8,
"properties": {
"title": "Top ${TopServices} services' share of spend",
"view": "pie",
"region": "us-east-1",
"start": "-P1D",
"stat": "Maximum",
"period": 21600,
"metrics": [
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${Currency}\"', 'Maximum', 21600), MAX, DESC, ${TopServices})", "label": "${!PROP('Dim.ServiceName')}", "id": "share" } ]
]
}
}
]
}
Der Body ist das Dashboard-JSON unten, wobei ${TopServices} und ${Currency} aus den Parametern des Stacks eingesetzt werden. ${!PROP(…)} verhindert, dass CloudFormation die dynamische Beschriftung als eigene Variable behandelt.
aws cloudformation deploy \
--region us-east-1 \
--stack-name CloudPeek \
--template-file cloudpeek-setup.yaml \
--capabilities CAPABILITY_NAMED_IAM
Oder wähle in der CloudFormation-Konsole in us-east-1 Vorlagendatei hochladen, nenne den Stack CloudPeek, prüfe die Parameter und markiere vor dem Absenden Ich erkenne an, dass AWS CloudFormation IAM-Ressourcen mit benutzerdefinierten Namen erstellen könnte. Sobald der Stack CREATE_COMPLETE erreicht, verlinkt sein Tab Ausgaben auf das Dashboard.
| Parameter | Standardwert | Zweck |
|---|---|---|
DashboardName | CloudPeek-Spend | Der Name des Dashboards. |
TopServices | 5 | Wie viele deiner größten Services dargestellt werden, von 1 bis 20. |
Currency | USD | Die Währung deiner Rechnung. |
PolicyName | CloudPeek | Der Name der Richtlinie. |
CreateUser | true | Auf false setzen, wenn du dich mit IAM Identity Center anmeldest. |
UserName | cloudpeek | Der Name des IAM-Benutzers. |
Um sie zu ändern, füge --parameter-overrides hinzu, z. B. --parameter-overrides TopServices=10 CreateUser=false.
Eine einzige Konfiguration erstellt das Dashboard und dazu die CloudPeek-Richtlinie und den IAM-Benutzer aus Schritt 3. Hier ist die Dashboard-Ressource:
resource "aws_cloudwatch_dashboard" "spend" {
dashboard_name = var.dashboard_name
dashboard_body = jsonencode({
start = "-P7D"
widgets = [
{
type = "metric"
x = 0
y = 0
width = 12
height = 8
properties = {
title = "Top ${var.top_services} services by spend"
view = "bar"
region = "us-east-1"
start = "-P1D"
stat = "Maximum"
period = 21600
metrics = [
["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { label = "Total" }],
[{
expression = "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${var.currency}\"', 'Maximum', 21600), MAX, DESC, ${var.top_services})"
label = "$${PROP('Dim.ServiceName')}"
id = "top"
}],
]
}
},
{
type = "metric"
x = 12
y = 0
width = 6
height = 8
properties = {
title = "Month-to-date spend"
view = "singleValue"
region = "us-east-1"
stat = "Maximum"
period = 21600
sparkline = true
metrics = [
["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { label = "Total" }],
]
}
},
{
type = "metric"
x = 18
y = 0
width = 6
height = 8
properties = {
title = "Last 7 days' spend"
view = "timeSeries"
region = "us-east-1"
start = "-P7D"
stat = "Maximum"
period = 86400
yAxis = { left = { min = 0 } }
metrics = [
[{ expression = "IF(DIFF(m1) < 0, m1, DIFF(m1))", label = "Spend", id = "daily" }],
["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { id = "m1", visible = false }],
]
}
},
{
type = "metric"
x = 0
y = 8
width = 12
height = 8
properties = {
title = "Top ${var.top_services} services' share of spend"
view = "pie"
region = "us-east-1"
start = "-P1D"
stat = "Maximum"
period = 21600
metrics = [
[{
expression = "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${var.currency}\"', 'Maximum', 21600), MAX, DESC, ${var.top_services})"
label = "$${PROP('Dim.ServiceName')}"
id = "share"
}],
]
}
},
]
})
}
Sie erzeugt mit jsonencode genau das Dashboard-JSON unten. $${PROP(…)} verhindert, dass Terraform die dynamische Beschriftung als Interpolation behandelt. Speichere die Datei in einem leeren Verzeichnis und führe Folgendes aus:
terraform init
terraform apply
| Variable | Standardwert | Zweck |
|---|---|---|
dashboard_name | CloudPeek-Spend | Der Name des Dashboards. |
top_services | 5 | Wie viele deiner größten Services dargestellt werden, von 1 bis 20. |
currency | USD | Die Währung deiner Rechnung. |
policy_name | CloudPeek | Der Name der Richtlinie. |
create_user | true | Auf false setzen, wenn du dich mit IAM Identity Center anmeldest. |
user_name | cloudpeek | Der Name des IAM-Benutzers. |
Um sie zu ändern, übergib -var, z. B. terraform apply -var top_services=10 -var create_user=false. Um das Dashboard zu einer bestehenden Konfiguration hinzuzufügen, kopiere die Ressourcen und lass die Blöcke terraform und provider weg.
3. Anmeldung für CloudPeek erstellen
Folge in „Erste Schritte“ dem Abschnitt Anmeldung für CloudPeek erstellen. Damit erstellst du die Richtlinie CloudPeek und entweder einen IAM-Benutzer mit Zugriffsschlüssel oder einen Berechtigungssatz in IAM Identity Center.
Folge in „Erste Schritte“ dem Abschnitt Anmeldung für CloudPeek erstellen. Dort stehen die AWS-CLI-Befehle für einen IAM-Benutzer oder einen Berechtigungssatz in IAM Identity Center.
Der Stack aus Schritt 2 hat bereits die Richtlinie CloudPeek erstellt und, sofern du CreateUser nicht auf false gesetzt hast, den Benutzer cloudpeek. Erstelle den Zugriffsschlüssel des Benutzers. Der geheime Schlüssel wird nur einmal angezeigt:
aws iam create-access-key --user-name cloudpeek
Für IAM Identity Center füge CloudPeek einem Berechtigungssatz als vom Kunden verwaltete Richtlinie an (siehe Option B).
Die Konfiguration aus Schritt 2 hat bereits die Richtlinie CloudPeek erstellt und, sofern du create_user nicht auf false gesetzt hast, den Benutzer cloudpeek. Erstelle den Zugriffsschlüssel des Benutzers außerhalb von Terraform, damit der geheime Schlüssel nicht in deinem State landet. Er wird nur einmal angezeigt:
aws iam create-access-key --user-name cloudpeek
Für IAM Identity Center füge CloudPeek einem Berechtigungssatz als vom Kunden verwaltete Richtlinie an (siehe Option B).
4. Konto hinzufügen und Widgets anheften
- Füge in CloudPeek im Tab Konten das Konto mit dem Zugriffsschlüssel oder über IAM Identity Center hinzu (siehe Erste Schritte, Schritt 2). Jede Standardregion funktioniert: Die Ausgaben-Widgets lesen immer
us-east-1. - Öffne im Tab Konten das Konto und dann das Dashboard CloudPeek-Spend und tippe bei den gewünschten Widgets auf Anheften: Top 5 services by spend, Month-to-date spend, Last 7 days' spend und Top 5 services' share of spend.
- Füge CloudPeek für jedes Widget einmal zu deinem Home-Bildschirm hinzu und wähle, welches Widget es jeweils zeigt (siehe Auswählen, welches Widget es zeigt). Mittel passt für das Balken- und das Kreisdiagramm, Klein für den Gesamtwert des laufenden Monats und die letzten 7 Tage.
Ergebnis: Sobald die Fakturierungsmetriken eingetroffen sind, listet das Balkendiagramm deine größten Services in diesem Monat auf, mit dem Gesamtwert darüber. Bis dahin zeigen die Widgets Keine Daten für diesen Zeitbereich.
Auf iPhone und iPad eignet sich der Gesamtwert auch gut für den Sperrbildschirm, wo Widgets den neuesten Wert zeigen.
So funktioniert das Dashboard
Egal, welches Werkzeug du verwendet hast, am Ende erhältst du dieses Dashboard:
{
"start": "-P7D",
"widgets": [
{
"type": "metric",
"x": 0,
"y": 0,
"width": 12,
"height": 8,
"properties": {
"title": "Top 5 services by spend",
"view": "bar",
"region": "us-east-1",
"start": "-P1D",
"stat": "Maximum",
"period": 21600,
"metrics": [
[ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "label": "Total" } ],
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "label": "${PROP('Dim.ServiceName')}", "id": "top" } ]
]
}
},
{
"type": "metric",
"x": 12,
"y": 0,
"width": 6,
"height": 8,
"properties": {
"title": "Month-to-date spend",
"view": "singleValue",
"region": "us-east-1",
"stat": "Maximum",
"period": 21600,
"sparkline": true,
"metrics": [
[ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "label": "Total" } ]
]
}
},
{
"type": "metric",
"x": 18,
"y": 0,
"width": 6,
"height": 8,
"properties": {
"title": "Last 7 days' spend",
"view": "timeSeries",
"region": "us-east-1",
"start": "-P7D",
"stat": "Maximum",
"period": 86400,
"yAxis": { "left": { "min": 0 } },
"metrics": [
[ { "expression": "IF(DIFF(m1) < 0, m1, DIFF(m1))", "label": "Spend", "id": "daily" } ],
[ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "id": "m1", "visible": false } ]
]
}
},
{
"type": "metric",
"x": 0,
"y": 8,
"width": 12,
"height": 8,
"properties": {
"title": "Top 5 services' share of spend",
"view": "pie",
"region": "us-east-1",
"start": "-P1D",
"stat": "Maximum",
"period": 21600,
"metrics": [
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "label": "${PROP('Dim.ServiceName')}", "id": "share" } ]
]
}
}
]
}
- Die Ausdruckszeile ermittelt deine Top-Services für dich.
SEARCHfindet die geschätzten Gebühren jedes Service, undSORT(…, MAX, DESC, 5)behält die fünf größten. Services, die du neu nutzt, erscheinen von selbst. Um mehr oder weniger anzuzeigen, ändere die5am Ende der Ausdrücke des Balken- und des Kreisdiagramms (oder den ParameterTopServicesbzw. die Variabletop_services). - Die Beschriftung
${PROP('Dim.ServiceName')}benennt jeden Balken nach seinem Service, z. B.AmazonEC2oderAWSLambda. CloudPeek zeigt den Kurznamen (EC2, Lambda), listet die größten zuerst auf und fasst alle, die nicht passen, unter Sonstige zusammen. - Die Zeile, die nur die Dimension
Currencyhat, enthält die bisherigen Gebühren deines gesamten Kontos in diesem Monat. CloudPeek zeigt sie im Widget als Gesamt statt als Balken, sodass auch Services außerhalb der Top 5 mitzählen. In der CloudWatch-Konsole erscheint sie als weiterer Balken. - Gebühren zählen ab Monatsbeginn, daher betrachten das Balken- und das Kreisdiagramm nur den letzten Tag (
"start": "-P1D"). So folgt die Rangfolge den Gebühren dieses Monats statt denen des Vormonats. Der Gesamtwert des laufenden Monats nutzt für seine Sparkline die Woche des Dashboards. - Die letzten 7 Tage stammen aus derselben Gebühr des laufenden Monats, die einmal täglich (
"period": 86400) aus der ausgeblendeten Zeilem1gelesen wird.DIFF(m1)ist der tägliche Anstieg, und an dem Tag, an dem sie zu Monatsbeginn auf null zurückgeht, nimmtIF(… < 0, m1, …)stattdessen die Gebühr des neuen Monats. - CloudPeek zeichnet jeden dieser Tage als Säule, jeweils ab Mitternacht in deiner Zeitzone, mit dem bisherigen Stand von heute ganz rechts. Die CloudWatch-Konsole hat kein solches Diagramm und zeichnet dieselben Tage daher als Linie.
- Wenn deine Rechnung nicht in US-Dollar ist, ändere jedes
USDin den Zeilen und Ausdrücken in deinen Währungscode. - Das Kreisdiagramm nutzt denselben Ausdruck wie das Balkendiagramm, aber ohne die Gesamtzeile. Seine Segmente sind also die Anteile deiner Top 5 Services an dem, was sie zusammen kosten. CloudPeek zeigt diese Summe in der Mitte.
- Um alles Übrige als Segment Sonstige ins Kreisdiagramm aufzunehmen, mit den Gebühren deines gesamten Kontos in der Mitte, kopiere die Gesamtzeile des Balkendiagramms hinein. Die CloudWatch-Konsole zeichnet den Gesamtwert dann als weiteres Segment.
Um die Gebühren aller Services zu sehen, öffne CloudWatch in us-east-1 und wähle Alle Metriken › Billing › Nach Service.
Um die täglichen Ausgaben jedes Service zu sehen, gestapelt in einer Säule pro Tag, füge die Vorlage Tägliche Ausgaben nach Service hinzu (siehe Ausgaben-Vorlagen) oder beschreibe sie in einem KI-Widget, z. B. „Tägliche Ausgaben nach Service für die letzten 7 Tage, gestapelt“. Auch die Gebühr jedes Service zählt ab Monatsbeginn, daher berechnen diese Widgets, um wie viel jede an jedem Tag gestiegen ist, so wie DIFF(m1) es für den Gesamtwert tut.
Um die Ausgaben der letzten 7 Tage in einer Tabelle aufzulisten, eine Zeile pro Tag, neueste zuerst, füge die Vorlage Tabelle der täglichen Ausgaben hinzu oder beschreibe sie in einem KI-Widget, z. B. „Eine Tabelle der Ausgaben der letzten 7 Tage, eine Zeile pro Tag“. Auf einem Dashboard sind das die DIFF(m1)-Zeilen von oben in einem Widget mit "view": "table" und "table": {"layout": "vertical"}.
Ausgaben nach Konto
Wenn deine Konten in AWS Organizations sind, schlüsseln die Fakturierungsmetriken des Verwaltungskontos die Gebühren mit der Dimension LinkedAccount auch nach Konto auf. Um statt deiner größten Services deine fünf größten Konten in diesem Monat darzustellen, verwende im Balken- oder Kreisdiagramm diese Ausdruckszeile anstelle der für die Services:
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,LinkedAccount} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "id": "accounts" } ]
Oder beschreibe in einem KI-Widget, was du möchtest, z. B. „Ausgaben nach Konto in diesem Monat“ oder für einen einzelnen Service „Gestapeltes Balkendiagramm der SQS-Ausgaben jedes Kontos in den letzten 7 Tagen“. Die Vorlage Tägliche Ausgaben nach Konto stapelt die Ausgaben jedes Kontos bereits in einer Säule pro Tag: siehe Ausgaben-Vorlagen.
CloudWatch kennt jedes Konto nur unter seiner 12-stelligen ID. CloudPeek zeigt stattdessen den Namen des Kontos, und zwar aus der ersten dieser Quellen, die ihn kennt:
- AWS Organizations, das jedes Konto der Organisation benennt. Dafür ist
organizations:ListAccountsnötig, das in der Richtlinie von CloudPeek enthalten ist, und es antwortet nur dem Verwaltungskonto (oder einem delegierten Administratorkonto). CloudPeek fragt es einmal am Tag ab. - IAM Identity Center, wenn du dich damit angemeldet hast: die Namen der Konten, bei denen du dich darüber anmelden kannst.
- Dein Tab „Konten“: der Name, den du einem hinzugefügten Konto gegeben hast.
Ein Konto, das keine dieser Quellen benennt, behält seine ID. Wenn AWS Organizations die Anfrage ablehnt, fragt CloudPeek nach sechs Stunden erneut, oder sobald du das Widget aktualisierst.
Wieder entfernen
Öffne in der CloudWatch-Konsole in us-east-1 Dashboards, markiere CloudPeek-Spend und wähle Löschen. Um auch den Zugriff von CloudPeek zu entfernen, lösche in der IAM-Konsole den Benutzer cloudpeek und die Richtlinie CloudPeek.
aws cloudwatch delete-dashboards --region us-east-1 --dashboard-names CloudPeek-Spend
CloudFormation kann keinen Benutzer löschen, der noch einen Zugriffsschlüssel hat, und keine Richtlinie, die noch außerhalb des Stacks verwendet wird. Lösche zuerst den Zugriffsschlüssel des Benutzers und trenne die Richtlinie von allen Berechtigungssätzen. Lösche dann den Stack:
aws iam list-access-keys --user-name cloudpeek
aws iam delete-access-key --user-name cloudpeek --access-key-id <access-key-id>
aws cloudformation delete-stack --region us-east-1 --stack-name CloudPeek
IAM löscht keinen Benutzer, der noch einen Zugriffsschlüssel hat, und keine Richtlinie, die noch anderswo angefügt ist. Lösche zuerst den Zugriffsschlüssel des Benutzers und trenne die Richtlinie von allen Berechtigungssätzen. Führe dann destroy aus:
aws iam list-access-keys --user-name cloudpeek
aws iam delete-access-key --user-name cloudpeek --access-key-id <access-key-id>
terraform destroy
Fehlerbehebung
Die Widgets sind leer oder das Dashboard zeigt „Keine Daten verfügbar“
Die Fakturierungsmetriken kommen noch nicht in CloudWatch an, und die Widgets von CloudPeek zeigen „Aktiviere die CloudWatch-Fakturierungswarnungen in der Billing-Konsole. Ausgaben erscheinen innerhalb eines Tages.“ Prüfe, ob sie aktiviert sind (Schritt 1), und gib ihnen ein paar Stunden. Suche dann in us-east-1 unter Alle Metriken nach dem Namespace Billing (Metrics Explorer listet keine Fakturierungsmetriken auf). Richte das in AWS Organizations im Verwaltungskonto ein, das die Gebühren der gesamten Organisation sieht: In einem anderen Konto der Organisation zeigen die Widgets „Die Ausgaben dieses Kontos stehen im Verwaltungskonto deiner Organisation.“
Konten erscheinen als Nummern
CloudPeek konnte ihre Namen nicht finden. Füge im Verwaltungskonto der Anmeldung von CloudPeek organizations:ListAccounts hinzu oder stelle das aktualisierte Template aus Erste Schritte bereit. Aktualisiere dann das Widget. Siehe Ausgaben nach Konto.
Ein Service fehlt
Er gehört in diesem Monat nicht zu deinen fünf größten. Um mehr darzustellen, erhöhe die Zahl am Ende des SORT-Ausdrucks (siehe, wie es funktioniert). Seine Gebühren sind im Gesamtwert bereits enthalten.
Der Gesamtwert ist größer als die Summe der Balken
Das ist normal. Der Gesamtwert ist deine gesamte bisherige Rechnung in diesem Monat, einschließlich der Services außerhalb deiner Top 5.
Etwas anderes
Siehe Fehlerbehebung oder schreib an support@cloudpeek.app. Schick uns niemals deinen geheimen Zugriffsschlüssel.