Kostenstellen helfen Ihnen, Kosten nachzuverfolgen und zu steuern GitHub , indem Sie sie der Finanzstruktur Ihres Unternehmens zuordnen.
Dieses Lernprogramm führt Sie durch die Planung, Erstellung und Verwaltung von Kostenstellen sowohl über die Benutzeroberfläche als auch über die REST-API, die Ihnen hilft, zu entscheiden, welcher Ansatz am besten zu den Anforderungen Ihrer Organisation passt.
1. Planen Ihrer Kostencenterstrategie
Kostenstellen ermöglichen es Ihnen, Ressourcen – Benutzer, Organisationen und Repositorys – für separate Kostenverfolgung und Berichterstellung zu gruppieren GitHub . Jedes Kostencenter sollte ein Segment Ihres Unternehmens darstellen, das Sie als separates Unternehmen melden oder steuern möchten.
Wenn Sie Azure Abrechnung verwenden, können Sie jedem Kostencenter eine andere Abrechnungsidentität zuweisen.
Ermitteln der benötigten Kostenstellen
Die beste Strategie hängt von der Komplexität Ihrer Finanzberichtsstruktur und Ihrer GitHub Einrichtung ab. Beginnen Sie mit dem einfachsten Ansatz– Sie können später immer weitere Kostenstellen hinzufügen.
Führen Sie die folgenden Schritte aus, um Ihre Kostenstellen zu planen:
-
**Zuordnung zu Finanzentitäten**: Erstellen Sie ein Kostencenter für jede Finanzentität, die Sie intern nachverfolgen möchten (z. B. Abteilungen, Geschäftseinheiten oder Projektteams). -
**Identifizieren von Benutzern**: Listet die Benutzer auf, die zu den einzelnen Finanzentitäten gehören. Durch das direkte Zuweisen von Benutzern zu einem Kostencenter wird sichergestellt, dass ihre Lizenz und die Produktnutzung korrekt zugeordnet werden. -
**Identifizieren von Organisationen**: Listet die Organisationen auf, die zu den einzelnen Finanzentitäten gehören. Durch das Zuweisen von Organisationen zu einem Kostencenter wird deren Nutzung von Aktionen, Codespaces, Paketen und anderen Produkten korrekt zugeordnet. -
**Identifizieren eines gemischten Eigentums**: Wenn eine Organisation Repositorys enthält, die im Besitz verschiedener Finanzentitäten sind, planen Sie, einzelne Repositorys den relevanten Kostenstellen zuzuweisen und die Organisation nicht zugewiesen zu lassen.
Tipp
Wenn ein Benutzer direkt der Kostenstelle A und indirekt teil des Kostencenters B nach Organisationsmitgliedschaft zugewiesen wird, werden alle kosten für lizenzierte Produkte dem Kostencenter A zugeordnet. Weitere Details und ein Beispiel finden Sie unter Kostenstellenzuordnung für verschiedene Produkte.
2. Erstellen eines Kostencenters in der Benutzeroberfläche
Jetzt erstellen Sie Ihr erstes Kostencenter mithilfe der Benutzeroberfläche (Ui), um sich mit der Funktionsweise von Kostenstellen vertraut zu machen. Wählen Sie eines der Kostenstellen aus, die Sie als Beispiel identifiziert haben – es ist am besten, mit einer kleinen Finanzeinheit zu beginnen.
- Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
- Klicke oben auf der Seite auf Billing and licensing.
- Klicke auf Kostenstellen.
- Klicke in der oberen rechten Ecke auf Neue Kostenstelle.
- Geben Sie im Textfeld unter "Name" den Namen der Finanzentität ein, für die Sie die Kosten nachverfolgen möchten.
- Wenn diese Finanzentität über ein separates Azure-Abonnement verfügt, können Sie das Azure-Abonnement dem Kostencenter hinzufügen, um die Nutzung direkt zu berechnen. Die Anmeldeinformationen werden anhand Azure überprüft, um sicherzustellen, dass die dem Konto zugeordnete Azure-ID verfügbar ist.
- Wählen Sie unter "Ressourcen" die Benutzer, Organisationen und Repositorys aus, die als Teil dieses Kostencenters nachverfolgt werden sollen.
- Klicke auf Kostenstelle erstellen.
Ihr neues Kostencenter ist jetzt aktiv, und die Nutzung wird sofort diesem Kostencenter zugeordnet. Zukünftige Abrechnungsberichte enthalten dieses Kostencenter mit einem Eintrag in der cost_center_name Spalte für die ihm zugewiesene Nutzung. Sie können auch Nutzungsdiagramme nach dieser Kostenstelle filtern.
3. Festlegen von Budgets zur Kontrolle der Kosten
Durch das Erstellen eines Kostencenters können Sie die Kosten für verschiedene Finanzeinheiten separat nachverfolgen. Um die Kosten tatsächlich zu steuern, müssen Sie Budgets auf Ihre Kostenstellen anwenden.
Grundlegendes zu Budgets
Budgets geben Ihnen die Kontrolle über Ausgaben. Jedes Budget:
- Gilt für eine einzelne Organisation, ein Repository, ein Kostencenter oder Ihr gesamtes Unternehmen
- Steuert die monatliche Nutzung eines kostenpflichtigen Produkts, einer SKU oder einer Gruppe von SKUs.
- Kann so konfiguriert werden, dass die Verwendung beendet oder nur benachrichtigt wird, wenn der Budgetgrenzwert erreicht ist
- Kann Kontobesitzer, Abrechnungsmanager und benannte Benutzer benachrichtigen, wenn das Budgetlimit erreicht wird
Berechnen Sie Ihr Kostenstellenbudget
Wenn Ihr interner Finanzplan ein einzelnes monatliches Budget für GitHub in dieser Kostenstelle zuweist, müssen Sie es auf die Produkte verteilen, die dieses Team verwendet.
-
**Fixlizenzkosten berechnen**: Addieren Sie die Kosten der Lizenzen, die das Team bereits für GitHub Enterprise, GitHub Copilot, GitHub Secret Protection and GitHub Code Security nutzt. -
**Variablenbudget berechnen**: Subtrahieren Sie die Lizenzkosten aus dem internen Budget. Der verbleibende Betrag ist das, was Sie für nutzungsbasierte Produkte zuordnen können, die nicht im Plan enthalten sind.
Erstellen Sie Budgets für die Kostenstelle
Erstellen Sie ein Budget für jedes Produkt, jede SKU oder eine Gruppe von SKUs, für die Sie Kosten steuern möchten.
-
Klicken Sie auf der Registerkarte "Abrechnung und Lizenzierung" auf "Budgets" und "Warnungen ", um die vorhandenen Budgets anzuzeigen.
-
Klicken Sie auf "Neues Budget ", um die Seite "Neues monatliches Budget" zu öffnen.
-
Wählen Sie unter "Budgettyp" das Budget auf Produktebene, das SKU-Budget oder das Budget für gebündelte Premiumanforderungen aus.
- Um die Ausgaben auf Produktebene zu begrenzen, wählen Sie in "Budget auf Produktebene" ein Produkt aus der Dropdownliste aus (z. B Codespaces. ).
- Um die Ausgaben auf SKU-Ebene zu begrenzen, wählen Sie in "SKU-Budget" ein Produkt und eine SKU (z. B. Copilot und Copilot Premium-Anfrage) aus.
- Verwenden Sie das "Budget für gebündelte Premiumanforderungen", um die Ausgaben für alle Premiumanforderungen zu begrenzen.
-
Klicken Sie auf Weiter: Konfigurieren Sie das Budget so, dass "Budgetbereich" angezeigt wird, und legen Sie den Umfang der Ausgaben für dieses Budget auf das Kostencenter fest, das Sie zuvor erstellt haben.
-
Lege unter „Budget“ einen Budgetbetrag fest. Um die Nutzung und weitere Ausgaben nach Erreichen des Budgetlimits zu beenden, wählen Sie "Nutzung beenden" aus, wenn der Budgetgrenzwert erreicht ist. Dies ist für lizenzierte Produkte nicht verfügbar.
-
Um eine Warnung zu erhalten, wenn die Verwendung 75%, 90%und 100% des Budgetziels erreicht, wählen Sie " Benachrichtigungen über Budgetschwellenwerte empfangen " unter "Warnungen" aus. Kontobesitzer, Abrechnungsmanager und alle zusätzlichen angegebenen Empfänger werden per E-Mail benachrichtigt. Du kannst dich davon jederzeit abmelden.
Wählen Sie unter "Benachrichtigungsempfänger" alle weiteren Empfänger aus, um die Benachrichtigungen zu erhalten.
-
Klicke auf Budget erstellen.
Überprüfen vorhandener Budgets für Konflikte
Nachdem Sie Ihre Kostencenterbudgets erstellt haben, überprüfen Sie vorhandene unternehmensweite Budgets, um sicherzustellen, dass sie nicht mit Ihren neuen Kostencenterbudgets in Konflikt stehen oder diese außer Kraft setzen.
Navigieren Sie zur Seite "Budgets und Benachrichtigungen". Es werden zwei Budgetlisten angezeigt:
-
**Enterprise-Budgets**: Grenzwerte, die für das gesamte Unternehmenskonto gelten -
**Weitere Budgets**: Grenzwerte für bestimmte Repositorys, Organisationen oder Kostenstellen
Überprüfen von Unternehmensbudgets
Überprüfen Sie, ob Unternehmensbudgets für dieselben Produkte oder SKUs gelten wie Ihre neuen Kostencenterbudgets. Wenn ein Unternehmensbudget sehr niedrig ist, kann die Nutzung für Ihre Kostenstelle blockiert werden, bevor das Budget der Kostenstelle selbst erreicht wird. Erwägen Sie das Löschen oder Anpassen widersprüchlicher Unternehmensbudgets.
Ansehen Ihrer Kostencenter-Budgets
Filtern Sie die Liste der anderen Budgets, um einen Bereich von Kostenstellen anzuzeigen. Ihre neue Kostenstelle sollte mit einer Zeile für jedes von Ihnen erstellte Budget angezeigt werden. Zunächst wird die Nutzung nahezu null sein, aber innerhalb weniger Tage werden sich Kosten ansammeln, wenn Benutzer und Repositories Produkte über das Kontingent ihres Plans hinaus nutzen.
4. Erstellen eines Kostencenters mit der REST-API
Nachdem Sie nun wissen, wie Sie Kostenstellen auf der Benutzeroberfläche erstellen, können Sie die REST-API erkunden, um zu sehen, wie Kostenstellen programmgesteuert erstellt werden können. Wenn Sie die API verstehen, können Sie bewerten, ob die Automatisierung Ihrer Organisation zugute kommt.
In diesem Abschnitt werden wichtige REST-API-Endpunkte für die Kostenzentrumverwaltung mithilfe von GitHub CLI gezeigt. Ausführliche Informationen zum Installieren GitHub CLI und Authentifizieren für den Zugriff auf diese Endpunkte finden Sie unter Schnellstart für GitHub REST-API.
Hinweis
Die folgenden Beispiele verwenden GitHub CLI, aber Sie können diese Befehle an die Verwendung curl oder einen beliebigen HTTP-Client anpassen, der REST-API-Aufrufe unterstützt.
Auflisten aller vorhandenen Kostenstellen
Rufen Sie zunächst alle Kostenstellen in Ihrem Unternehmen ab, um zu sehen, was bereits vorhanden ist. Mit dieser einfachen Anforderung können Sie sicherstellen, dass Sie ordnungsgemäß authentifiziert sind, um die Abrechnung für Ihr Unternehmen zu verwalten.
Führen Sie im Terminal den folgenden Befehl aus, und ersetzen Sie ENTERPRISE durch den Slug Ihres Unternehmens.
gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /enterprises/ENTERPRISE/settings/billing/cost-centers
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers
Die Antwort enthält alle Kostenstellen, die in Ihrem Unternehmen erstellt wurden, einschließlich der Kostenstelle, die Sie zuvor in diesem Tutorial erstellt haben. In diesem Beispiel verfügt das Unternehmen über eine Kostenstelle, "Octocenter", der eine Organisation und zwei Benutzer zugeordnet sind.
{
"costCenters": [
{
"id": "33635e2c-edc0-40b8-abea-261839ff73c1",
"name": "Octocenter",
"state": "active",
"resources": [
{
"type": "User",
"name": "monalisa"
},
{
"type": "Org",
"name": "doctocat-org"
},
{
"type": "User",
"name": "doctocat"
}
]
}
]
}
Erstellen Sie eine neue Kostenstelle
Erstellen Sie ein neues Kostencenter, indem Sie einen Namen angeben. Sie erhalten einen eindeutigen Bezeichner, den Sie zum Verwalten dieses Kostencenters verwenden.
Führen Sie in Ihrem Terminal den folgenden Befehl aus, wobei Sie ENTERPRISE und NAME durch die entsprechenden Werte ersetzen.
gh api \ --method POST \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /enterprises/ENTERPRISE/settings/billing/cost-centers \ -f 'name=NAME'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers \
-f 'name=NAME'
Die Antwort enthält den Bezeichner für das neue Kostencenter. Sie müssen diese id für alle zukünftigen Vorgänge in dieser Kostenstelle verwenden.
{
"id": "3312fdf2-5950-4f64-913d-e734124059c9",
"name": "NAME",
"state": "active",
"resources": []
}
Fügen Sie Ressourcen zum Kostencenter hinzu
Weisen Sie Ihrem Kostencenter Benutzer, Organisationen und Repositorys zu. In diesem Beispiel wird gezeigt, wie Sie mehrere Benutzer und eine Organisation hinzufügen.
Führen Sie in Ihrem Terminal den folgenden Befehl aus und ersetzen Sie COST_CENTER_ID durch den Bezeichner aus dem vorherigen Schritt sowie ENTERPRISE, NAME und ORG durch entsprechende Werte.
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers/COST_CENTER_ID/resource \
--input - <<< '{
"users": [
"NAME-1",
"NAME-2"
],
"organizations": [
"ORG-1"
]
}'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers/COST_CENTER_ID/resource \
--input - <<< '{
"users": [
"NAME-1",
"NAME-2"
],
"organizations": [
"ORG-1"
]
}'
Die Antwort bestätigt das erfolgreiche Hinzufügen von Ressourcen. Wenn zuvor Ressourcen einem anderen Kostencenter zugewiesen wurden, werden sie im reassigned_resources Array aufgeführt.
{
"message": "Resources successfully added to the cost center.",
"reassigned_resources": [
{
"resource_type": "User",
"name": "monalisa",
"previous_cost_center": "Octocenter"
}
]
}
Wenn der Endpunkt mit Problems parsing JSONantwortet, verwenden Sie einen JSON-Validator, um zu überprüfen, ob die in der --input Option angegebenen Daten gültig sind.
5. Festlegen von Budgets mit der REST-API
Budgets können programmgesteuert erstellt werden, um Kontrollen der Ausgaben auf die von Ihnen erstellten Kostenstellen anzuwenden. Dies ist besonders nützlich für die Verwaltung von nutzungsbasierten Kosten wie Premium-Anforderungen im großen Maßstab.
Ein Budget für Premiumanforderungen erstellen
In diesem Beispiel wird gezeigt, wie Sie ein SKU-Budget für Copilot Premiumanforderungen erstellen und auf Ihr neues Kostencenter anwenden. So können Sie ein Ausgabenlimit speziell für die Nutzung von Premiumanforderungen durch die Ressourcen in dieser Kostenstelle festlegen.
Führen Sie in Ihrem Terminal den folgenden Befehl aus, indem Sie ENTERPRISE, COST_CENTER_ID, USERNAME und 1000.0 durch entsprechende Werte ersetzen.
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/budgets \
-f budget_type='SkuPricing' \
-f budget_product_sku='copilot_premium_request' \
-f budget_scope='cost_center' \
-f budget_entity_name='COST_CENTER_ID' \
-F budget_amount=1000.0 \
-F prevent_further_usage=true \
-f budget_alerting='{"will_alert":true,"alert_recipients":["USERNAME"]}'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/budgets \
-f budget_type='SkuPricing' \
-f budget_product_sku='copilot_premium_request' \
-f budget_scope='cost_center' \
-f budget_entity_name='COST_CENTER_ID' \
-F budget_amount=1000.0 \
-F prevent_further_usage=true \
-f budget_alerting='{"will_alert":true,"alert_recipients":["USERNAME"]}'
Die Antwort bestätigt, dass das Budget erstellt wurde und seine Konfiguration zurückgibt. Beachten Sie, dass dieses Budget sowohl prevent_further_usage als auch will_alert auf true setzt. Die octocat@github.com E-Mail-Adresse empfängt Benachrichtigungen, sobald das Budgetlimit erreicht ist, und die Nutzung wird für Kostencenterressourcen blockiert, sobald 1000 USD erreicht sind.
{
"id": "budget-uuid-here",
"budget_type": "SkuPricing",
"budget_product_sku": "copilot_premium_request",
"budget_scope": "cost_center",
"budget_entity_name": "3312fdf2-5950-4f64-913d-e734124059c9",
"budget_amount": 1000.0,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"octocat"
]
}
}
Tipp
Sie können mehrere Budgets für dasselbe Kostencenter erstellen, um verschiedene Produkte oder SKUs unabhängig voneinander zu steuern. Sie können beispielsweise separate Budgets für Copilot Premiumanforderungen, GitHub Actions Berechnung und Codespaces Nutzung festlegen. Weitere Informationen findest du unter GitHub Produkt- und SKU-Namen.
6. Entscheiden, ob automatisiert werden soll
In diesem Lernprogramm haben Sie zwei Ansätze zum Erstellen von Kostencentern gezeigt: die Verwendung der Benutzeroberfläche für die praktische Verwaltung und die Verwendung der REST-API für die programmgesteuerte Verwaltung. Wenn Sie beide Ansätze verstehen, können Sie entscheiden, welches für Ihre Organisation geeignet ist.
Die Benutzeroberfläche ist ideal, wenn Sie:
- Einrichten Ihrer ersten Kostenstellen
- Gelegentliche Aktualisierungen an vorhandenen Kostenstellen vornehmen
- Bevorzugte visuelle Bestätigung von Änderungen
- Verwalten Sie eine kleine Anzahl von Kostenstellen.
Die REST-API ist nützlich, wenn Sie:
- Notwendigkeit der regelmäßigen Erstellung oder Aktualisierung mehrerer Kostenstellen
- Das Kostencentermanagement muss in vorhandene Finanzsysteme integriert oder Konfigurationen aus externen Datenquellen generiert werden.
- Notwendigkeit der Spiegelung Ihrer Organisationsstruktur durch Kostenstellen (z. B. Teammitgliedschaft oder Abteilungsstruktur)
- Kostenstellenzuweisungen müssen automatisch verwaltet werden, wenn Benutzer Rollen ändern oder zwischen Teams wechseln
Optionen für die Automatisierung
Wenn Sie entscheiden, dass die Automatisierung Ihrer Organisation zugute kommt, bieten die REST-API-Beispiele in diesem Lernprogramm die Grundlage für das Erstellen benutzerdefinierter Skripts. Details zu anderen Endpunkten finden Sie unter REST-API-Endpunkte für die Abrechnung.
Wenn Sie Kostenstellen basierend auf der Teammitgliedschaft automatisieren oder ein zweistufiges Modell für die Kostensteuerung von Premiumanforderungen erstellen möchten, GitHub bietet Cost Center Automation eine vollständige Implementierung mithilfe von Aktionsworkflows, die Sie an Ihre Anforderungen anpassen können.
Nächste Schritte
Informationen zu den Endpunkten, die Sie zum Automatisieren der Berichterstellung von Nutzung und Kosten verwenden können, finden Sie unter Automatisieren von Nutzungsberichten mit der REST-API.
Wenn kostenpflichtige Produkte vorhanden sind, auf die Sie den gesamten Zugriff blockieren möchten, können Sie das Feature mithilfe einer Unternehmensrichtlinie deaktivieren. Weitere Informationen findest du unter Unternehmensrichtlinien.