Rightsizing von Endpunkten

Zusammenfassung

Die Rightsizing-API liefert Rightsizing-Empfehlungen für Ressourcen aus unterstützten Diensten. Für jede dieser Ressourcen gibt die API mehrere Optimierungsempfehlungen sowie beschreibende Informationen wie die aktuelle Instanzgröße, die Kosten, den Prozentsatz des Leerlaufs und die empfohlenen Maßnahmen zurück. Die maximale Anzahl von Ressourcen, die durch einen API-Aufruf zurückgegeben werden können, beträgt 50.000. Lesen Sie mehr über Rightsizing.

Endpunkte

Diese Endpunkte sind schreibgeschützt und werden verwendet, um eine Liste von Empfehlungen zur Größenanpassung Ihrer Cloud-Ressourcen für diese unterstützten Dienste zu erhalten:

Amazon Web Services

  • EC2: /rightsizing/aws/recommendations/ec2

  • EC2 ASG: /rightsizing/aws/recommendations/ec2-asg

  • EBS : /rightsizing/aws/empfehlungen/ebs

  • S3: /rightsizing/aws/recommendations/s3

  • RDS : /rightsizing/aws/empfehlungen/rds

  • Redshift: /rightsizing/aws/unterausgelastet/redshift

  • Lambda: /rightsizing/aws/empfehlungen/lambda

Microsoft Azure

  • Compute (VMs) : /rightsizing/azure/empfehlungen/compute

  • Verwaltete Festplatte : /rightsizing/azure/empfehlungen/festplatte

  • SQL Database : /rightsizing/azure/empfehlungen/sql

Google Cloud Plattform

  • GCE: /rightsizing/gcp/empfehlungen/compute

  • GCE MIG: /rightsizing/gcp/empfehlungen/compute-mig

  • BIP: /rightsizing/gcp/empfehlungen/disk

Container

  • Arbeitsbelastungen: /rightsizing/containers/empfehlungen/workloads

Die Endpunkte geben ein Meta-Attribut innerhalb der JSON-Nutzdaten zurück, das wie folgt aussieht. Im folgenden Beispiel steht 4783 für die Anzahl der Ressourcen, $337, 029.28 für deren Gesamtkosten, $ 930.84 für die potenziellen Einsparungen durch die Beseitigung ungenutzter Ressourcen und $106, 857.60 für potenzielle Einsparungen durch Rightsizing. Damit verbleiben 229 $, 240.04 für Ressourcen, die als bereits optimiert gelten. Diese Zahlen beziehen sich auf den zehntägigen Berichtszeitraum.
"meta": {
    "totalCount": 4783,
    "aggregates": [
      {
        "basis": "On-Demand",
        "cost": 337029.28,
        "idleSavings": 930.84,
        "rightsizeSavings": 106857.60,
        "optimizedSavings": 229240.84
      }
    ]
  }

Die folgenden Endpunkte werden für Snooze- und Un-Snooze-Rechteskalierungsempfehlungen für Ihre Cloud-Ressourcen verwendet, wobei " {service} " durch den Pfad des Endpunkts des Dienstes ersetzt werden sollte:

Snooze/Un-Snooze-Empfehlungen

  • Schlummern: /Rechtsprechung/ {vendor} /Empfehlungen/ {service} /Schlummern

  • Un-Schlummern: /Rightsizing/ {vendor} /Empfehlungen/ {service} /Un-Snooze

Weitere Informationen über die Verwendung der API zum Schlummern/Unschlummern von Empfehlungen finden Sie im Abschnitt "Schlummern/Unschlummern von Empfehlungen" auf dieser Seite.

Anfrage-Parameter

Argument Beschreibung

basis (erforderlich)

Die verwendete Kostenbasis.

on-demand

Die Werte sind oder effective

Standard = on-demand

Hinweis: Die Kostenbasis effective ist für die Dienste EC2 und RDS verfügbar

duration (erforderlich)

Der Rückblickzeitraum in Tagen, der für die Berechnung der Empfehlungen verwendet wird.

Gültige Werte sind: ten-day und thirty-day Standard = ten-day

Hinweis: Nur thirty-day ist verfügbar für S3

filters

Filtern Sie die Ressourcen nach einem Attribut Ihrer Wahl. Beispiel: filters=recommendations.action==Rightsize . Um sich auf das Attribut in der Empfehlung selbst zu stützen, setzen Sie das Präfix "recommendations." ein. Mehrere Filter können mit Kommas aneinandergereiht werden. Beispiel: filters=recommendations.savings>20,recommendations.risk==0 Lesen Sie mehr für weitere Details zur Filterung.

limit (erforderlich)

Wird zusammen mit offset verwendet, um eine Paginierung zu ermöglichen. Beispiel: limit=10 . standard = 50

maxRecsPerResource

Legen Sie eine maximale Anzahl von Empfehlungen fest, die mit jeder Ressource geliefert werden sollen. Beispiel: maxRecsPerResource=10 Standard = 1

offset

Wird zusammen mit limit verwendet, um eine Paginierung zu ermöglichen. Beispiel: offset=0 Standard = 0

product

Produktname, Beispiel ec2, ebs, s3

sort

Sortieren Sie die Ressourcen nach einem Attribut Ihrer Wahl. Lesen Sie mehr über das Sortieren.

Beispiel: sort=-name (Sortierung nach Name absteigend)

Standardwert: sort=-recommendations.savings (Sortierung der Ressourcen mit dem höchsten Einsparpotenzial absteigend)

source

Quellsystem für Nutzungsdaten Beispiele: datadog , cloudwatch

vendorAccountIds

Nach einer Liste von Lieferantenkonten filtern. Trennen Sie die Konten durch Kommata. Beispiel: vendorAccountIds=999988887777,111122223333

viewId

Die Nummer der Ansicht Wenn sie leer ist, ist die Ansicht Ihre Standardansicht.

options String-Wert, der angibt, welche Empfehlungen zurückgegeben werden sollen, wenn die Ressource im Schlummerzustand ist. Gültige Werte sind ONLY_SNOOZED , das nur Empfehlungen für Ressourcen im Schlummerzustand zurückgibt, oder INCLUDE_SNOOZED , das Empfehlungen sowohl für Ressourcen im Schlummerzustand als auch für Ressourcen im Nicht-Schlummerzustand zurückgibt. Wenn Sie "option" weglassen, werden nur nicht gesnoozte Ressourcen zurückgegeben. (Standard)
Hinweis: Der standardmäßige Rightsizing-Bericht (d. h. ein Aufruf von /rightsizing/aws/recommendations/ec2 ohne Abfrageargumente) liefert 50 Instanzen von EC2, geordnet nach den höchsten Einsparungen in absteigender Reihenfolge. Zu jeder Ressource gibt es 5 Empfehlungen. Außerhalb der von Ihnen angewendeten Ansicht wird keine Filterung vorgenommen.

Das Ressourcenobjekt

Zusammenfassung der aktuellen Ressourcen

Das Ergebnisobjekt enthält eine Liste aller übereinstimmenden Ressourcen. Dies sind die zusammenfassenden Daten, die in jedem dieser Dokumente enthalten sind:

service (string) - Name des Empfehlungsdienstes ( ec2-recs, eb2,rec, etc)

name (string) - Name der Ressource. Stammt aus dem Namensschild

resourceIdentifier (string) - Der eindeutige Bezeichner, den der Anbieter für die Ressource bereitstellt

vendorAccountId (string) - Der eindeutige Bezeichner für das Konto, in dem die Ressource existiert

tagMappings (Array) - Liste von Tag-Schlüssel- und Wertepaaren von Tag-Zuordnungen

tag (Zeichenkette) - Name des nativen/anbietereigenen Tags

tagName (string) - Name/Schlüssel für die Tag-Zuordnung

vendorTagValue (string) - Wert für diese Markierung

availabilityZone (string) - Die Verfügbarkeitszone, in der sich die Ressource befindet

provider (string) - Der Quellanbieter, z. B. NATIVE

region (string) - Die Region, in der sich die Ressource befindet

os (string) - Das Betriebssystem der Ressource

nodeType (string) - Für EC2 ist dies der Instanztyp der Ressource

unitPrice (Zahl) - Der Satz pro Einheit

effectiveHourly (Zahl) - Der für die Ressource berechnete Stundensatz auf der Grundlage der effektiven Sätze. ENTFERNT. Stattdessen wird unter costBasis=effective die Adresse unitPrice angezeigt.

totalSpend (Zahl) - Die gesamten Kosten für die Ressource in den letzten 10 oder 30 Tagen

iopsMax (Zahl) - maximale IOPS-Zahl während des Zeitraums

throughputMax (Zahl) - maximaler Durchsatz MB/S während des Zeitraums

idle (Zahl) - gibt den Prozentsatz der Zeit an, die die Ressource im Leerlauf war

localCapacity (Zahl) - lokaler EC2 Instanzspeicher in GB. Typen ohne zugehörigen Speicher haben den Wert -1

localDrives (Zahl) - Anzahl der an die Instanz angeschlossenen lokalen Laufwerke. Typen ohne zugehörigen Speicher haben den Wert -1

cpuCapacity (Zahl) - Anzahl der CPU-Kerne für die aktuelle Instanz

memoryCapacity (Zahl) - Speicherkapazität für die aktuelle Instanz in GB

networkCapacity (Zahl) - Netzkapazität für die aktuelle Instanz in GB

lastSeen (datetime) - Datum, an dem die Ressource zuletzt gesehen wurde

tenancy (string) - veraltet

hoursRunning (Anzahl) - laufende Stunden innerhalb des Zeitraums

cpuMax (Zahl) - maximaler CPU-Prozentsatz während des Zeitraums

memoryMax (Zahl) - maximaler Speicherprozentsatz während des Zeitraums

defaultSameFamily (boolesch) - dieselbe Instanzfamilie verwenden

defaultCurrentGen (boolesch) - aktuelle Generationen verwenden

defaultMemoryFit (boolesch) - gleiche Speicherspezifikation verwenden

instanceTypeAsg (string) - Liste der Instanztypen, die in der Auto-Skalierungsgruppe enthalten sind

utilMemoryMax (Zahl) - maximaler Speicheranteil des Lambda während des Zeitraums

utilDurationMax (Zahl) - maximale Laufzeit des Lambdas während des Zeitraums

billedMilliseconds (Zahl) - Gesamtlaufzeit des Lambda während des Zeitraums

sourceConfiguredMemory (Zahl) - der konfigurierte Speicher des Lambdas

sourceProcessorArchitectureFamily (Zahl) - die Prozessorarchitekturfamilie für den Lambda

Empfehlungsliste

Für jede aufgelistete Ressource gibt es ein Empfehlungsattribut, das eine zugehörige Liste von Empfehlungsobjekten darstellt. Dies sind die Merkmale der einzelnen Empfehlungen:

recommendations (array) - Eine Liste von Empfehlungen für die Ressource. Nachstehend beschrieben

action (string) - welche Aktion soll durchgeführt werden: Rightsize, terminate, autoscale

preferenceOrder (Zahl) - veraltet

defaultsOrder (Zahl) - veraltet

nodeType (string) - der Typ der Zielinstanz

localCapacity (Zahl) - lokaler EC2 Instanzspeicher in GB für die Zielressource

localDrives (Zahl) - Anzahl der an die Zielinstanz angeschlossenen lokalen Laufwerke

cpuCapacity (Zahl) - Anzahl der CPU-Kerne für die Zielinstanz

memoryCapacity (Zahl) - Speicherkapazität für die Zielinstanz in GB

networkCapacity (Zahl) - Netzkapazität der Zielinstanz

previousGenTarget (boolesch) - Ist die Zielinstanz ein Typ der vorherigen Generation?

currentGen (boolesch) - Ist die Zielinstanz ein Typ der aktuellen Generation?

sameMemory (boolesch) - dieselbe Speichergröße wie die Quellinstanz verwenden

sameFamily (boolesch) - Gehört der Zielinstanztyp zur gleichen Familie?

unitPrice (Zahl) - Der Satz pro Einheit

cpuRatio (Anzahl) - Verhältnis der CPU-Kerne (Ziel/Original)

memoryRatio (Zahl) - Verhältnis der Speicherkapazität (Ziel/Original)

diskXPutCapacity (Zahl) - Verhältnis der Speicherkapazität (Ziel/Original)

networkRatio (Zahl) - Verhältnis der Netzdurchsatzkapazität (Ziel/Original)

cpuRisk (Zahl) - Risiko in Bezug auf die CPU - Wert zwischen 0 und 5 TBC. 0 bedeutet Nullrisiko

memoryRisk (Zahl) - Risiko in Bezug auf das Gedächtnis - Wert zwischen 0 und 5 TBC

diskRisk (Zahl) - Risiko des lokalen Festplattendurchsatzes - Wert zwischen 0 und 5 TBC

networkRisk (Zahl) - Risiko in Bezug auf den Netzdurchsatz - Wert zwischen 0 und 5 TBC

risiko (Zahl) - Wert von 0,1,2,3,4 oder 5. 0 bedeutet kein Risiko. 5 ist das höchste Risiko

targetConfiguredMemory (Zahl) - der konfigurierte Zielspeicher des Lambda

savingsPct (Zahl) - Einsparungen in Prozent durch den Wechsel zum Zieltyp

einsparungen (Anzahl) - Einsparungen in den letzten 10 oder 30 Tagen, wenn Sie die Zielart verwendet haben

inDefaults - abgelehnt

memoryFit abgelehnt

persistentStorageAdded TBC - wir haben EBS Kosten für etwa c3 hinzugefügt, um c4

snoozed (boolesch) - ist die Empfehlung im Schlummermodus?

Beispielobjekt

"result": [
    {
      "service": "ec2-recs",
      "name": "My EC2 Instance",
      "resourceIdentifier": "i-5b234a4fae415b77f",
      "vendorAccountId": "458273444843",
      "tagsMappings: [
        {
          "tagName": "tag_user_Environment",
          "vendorTagValue": "production"
        },
        {
          "tagName": "tag_user_Name",
          "vendorTagValue": "My EC2 Instance"
        }
      ],
      "availabilityZone": "ap-southeast-2b",
      "provider": "NATIVE"
      "region": "ap-southeast-2",
      "os": "Linux",
      "nodeType": "i3.8xlarge",
      "unitPrice": 1.81,
      "totalSpend": 434.11,
      "idle": 0,
      "localCapacity": 7600,
      "localDrives": 4,
      "cpuCapacity": 32,
      "memoryCapacity": 244,
      "networkCapacity": 10000,
      "lastSeen": "2019-10-31T23:00:00Z",
      "tenancy" : "default",
      "hoursRunning": 240,
      "cpuMax": 6,
      "memoryMax": 6,
      "recommendations": [
        {
          "action": "Rightsize",
          "preferenceOrder": 1,
          "defaultsOrder": 1,
          "nodeType": "x1e.xlarge",
          "localCapacity": 120,
          "localDrives": 1,
          "cpuCapacity": 4,
          "memoryCapacity": 122,
          "previousGenTarget": false,
          "currentGen": true,
          "sameMemory": false,
          "sameFamily": false,
          "unitPrice": 0.83,
          "cpuRatio": 0.13,
          "memoryRatio": 0.5,
          "diskXPutCapacity": 100,
          "networkRatio": 1,
          "cpuRisk": 0,
          "memoryRisk": 0,
          "diskRisk": 0,
          "networkRisk": 0,
          "risk": 0,
          "savingsPct": 54,
          "savings": 233.95,
          "inDefaults": true,
          "memoryFit": false,
          "persistentStorageAdded": false,
          "snoozed": false
        }
      ],
      "defaultSameFamily": false,
      "defaultCurrentGen": true,
      "defaultMemoryFit": false
    }
  ]

Einige wichtige Attribute

Einige Eigenschaften sind besonders hervorzuheben

  • risk : Dies ist das abgestufte Risiko für eine einzelne Empfehlung. risiko kann einen Wert von 0, 1, 2, 3, 4 oder 5 annehmen. 0 bedeutet, dass wir davon ausgehen, dass die Empfehlung genügend Spielraum für Ihre Ressource hat, ohne dass es zu Überschreitungen kommt. 1 bis 5 bedeuten ein zunehmendes Risiko, dass die Leistung beeinträchtigt werden könnte. Beachten Sie, dass es sowohl eine Gesamtrisikobewertung als auch individuelle Bewertungen für CPU, Netzwerk, Speicher und Festplatte gibt.

  • rank : Die Rangfolge basiert auf einem Gruppierungssystem für Risiko und Ersparnis. Die ranghöchste Empfehlung wird von der Kohorte mit dem geringsten Risiko abgegeben. Aus dieser Gruppe wird dann diejenige mit den höchsten Einsparungen ausgewählt. Der nächste in der Rangfolge kommt aus der Kohorte mit dem zweitniedrigsten Risiko und wiederum den höchsten Einsparungen. Die Rangfolge wird als solche festgelegt, indem diese Risikokohorten so lange durchlaufen werden, bis alle Empfehlungen die gleiche Rangfolge aufweisen. Siehe besondere Hinweise am Ende der Seite für zusätzliche Ranglistenoptionen.

Beispiele

Vollständige Liste der 10-Tage-Datensätze EC2 Empfehlungen



curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ec2?limit=5&maxRecsPerResource=1&offset=0&duration=ten-day" -u api-token:

Vollständige Liste der 30-Tage-Datensätze EBS Empfehlungen



curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ebs?limit=5&maxRecsPerResource=1&offset=0&duration=thirty-day" -u apikey:

Geben Sie mir nur die Standardempfehlung pro Ressource



curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ec2?rank=default&maxRecsPerResource=1&sort=-recommendations.savings" -u apikey:

Geben Sie mir alle Empfehlungen für eine bestimmte Ressource/Instanz-ID




curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ec2?filters=resourceIdentifier==i-ae3f332111" -u apikey:

Geben Sie mir Empfehlungen nur für bestimmte Konten





curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ec2?limit=5&offset=0&vendorAccountIds=999988887777&maxRecsPerResource=1&basis=on-demand&duration=ten-day" -u apikey:

Meine Empfehlungen anhand von Tags filtern




curl "https://api.cloudability.com/v3/rightsizing/aws/recommendations/ec2?filters=<tag_key>==<tag_value>" -u apikey:

Besondere Hinweise

Um eine weitere Ebene zu diesem Ranking-System hinzuzufügen, können Sie rank=default als Abfrageparameter hinzufügen. Dabei werden 2 zusätzliche Attribute priorisiert, memoryFit und currentGen , bevor die Risiko/Spar-Routine durchlaufen wird. currentGen würde zum Beispiel sicherstellen, dass m4s (eine aktuelle Generation) vor m1s (vorherige Generation) empfohlen wird. Empfehlungen können auf zwei verschiedene Arten memoryFit sein: 1) Cloudability hat die Speicherdaten erhalten und eine Übereinstimmung festgestellt, oder 2) Cloudability hat die Speicherdaten nicht erhalten, so dass memoryFit nur Instanztypen einbezieht, die einen passenden Speicher oder mehr haben.

Schlummern/ Nicht-Schlummern-Aufzeichnungen

Die folgenden Endpunkte werden für Snooze- und Un-Snooze-Empfehlungen zur Größenanpassung Ihrer Cloud-Ressourcen verwendet, wobei " {vendor} " durch den Pfad des Endpunkts des Cloud-Anbieters und " {service} " durch den Pfad des Endpunkts des Dienstes ersetzt werden sollte.

  • Schlummern: /Rechtsprechung/ {vendor} /Empfehlungen/ {service} /Schlummern

Dadurch werden Snooze-Einträge mit dem angegebenen Ablaufdatum hinzugefügt oder aktualisiert, und der Snooze-Wert für die Ressourcenempfehlung wird auf true gesetzt.

Die folgenden Werte sind spezifisch für Snooze/Un-Snooze:

  • expiresOn (Datum) - Das Snooze-Ablaufdatum im Format jjjj-mm-tt oder der Wert "nie", um eine unbegrenzte Snoozezeit festzulegen.

  • resources (array) - Eine Zuordnung von Konto-IDs zu einer Liste von Ressourcen-IDs, für die Empfehlungen in den Schlummermodus versetzt werden sollen.

Beispiel: Einzelne Ressourcen schlummern EC2

curl -X POST https://api.cloudability.com/v3/rightsizing/AWS/recommendations/EC2/snooze \\
	 -H 'Content-Type: application/json' \\
	 -u '[auth_token]:' \\
	 -d @- 
{
	"expiresOn": "2024-11-24",
       "resources": { 
       "123456789": ["resource_12345", "resource_123456"],
       "111112222": ["resource_6789"]
}
}		
EOF	

Beispiel: Snooze-Ressourcen, die einem Filter entsprechen

curl -X POST https://api.cloudability.com/v3/rightsizing/AWS/recommendations/EC2/snooze \\
	 -H 'Content-Type: application/json' \\
	 -u '[auth_token]:' \\
	 -d @- 
{
	"expiresOn": "never",
       "vendorAccountIds": [123456789, 111112222],
       "filters": [
       "region=ap-southeast-2",
       "tag_user_Environment=staging"
]
}		

- Un-Schlummern: /Rightsizing/ {vendor} /Empfehlungen/ {service} /Un-Snooze.

Im Wesentlichen das gleiche Format wie der Snooze-Endpunkt, aber ohne Ablaufdatum. Entfernt alle Verfallsdaten und setzt den Snooze-Wert für die Ressourcenempfehlung auf false.

Beispiel: Einzelne Ressourcen entschlummern

curl -X POST https://api.cloudability.com/v3/rightsizing/AWS/recommendations/EC2/unsnooze \\
	 -H 'Content-Type: application/json' \\
	 -u '[auth_token]:' \\
	 -d @- 
{
	"resources": {
          "123456789": ["resource_12345", "resource_123456"],
          "111112222": ["resource_6789"]
       }
}

Beispiel: Entschlummern von Ressourcen, die einem Filter entsprechen

curl -X POST https://api.cloudability.com/v3/rightsizing/AWS/recommendations/EC2/snooze \\
	 -H 'Content-Type: application/json' \\
	 -u '[auth_token]:' \\
	 -d @- 
{
       "vendorAccountIds": [123456789, 111112222],
       "filters": [
       "region=ap-southeast-2",
       "tag_user_Environment=staging"
]
}