Widget- & Metriken-API
ENTWURF — Nur für interne Entwickler
Diese API-Referenz ist für interne Entwicklungsteams bestimmt.
Übersicht
Was es ist: Die Widget- und Metriken-API liefert operative Überwachungsdaten für die Discovery-Infrastruktur. Dies umfasst Systemressourcen-Metriken (CPU, Speicher, Festplatte), Web-Traffic-Metriken und Identitätserfassungsmetriken. Widgets kombinieren diese Metriken zu diagrammfähigen Datenstrukturen.
Beziehung zu Dashboard-Daten: Die Dashboard-Daten-API liefert Identitätslage-Daten (Konten, Bedrohungen, Gruppen). Diese Widget-API liefert Infrastruktur-Überwachungsdaten (CPU, Speicher, Erfassungsgesundheit). Beide fließen in das Dashboard-System von Control ein — Lagedaten für Identitätsrisiko-Widgets, operative Daten für Plattformzustands-Widgets.
Endpunkte
| Methode | Pfad | Beschreibung | Auth |
|---|---|---|---|
POST | /internal/v1/logging/metrics | Rohe Metrik-Datenpunkte abfragen | JWT |
POST | /internal/v1/logging/metrics/chart | Metrikdaten formatiert für Diagramme abfragen | JWT |
GET | /internal/v1/logging/dashboard/:did | Dashboard-Konfiguration mit Widget-Liste abrufen | JWT |
POST /internal/v1/logging/metrics/chart
Eine oder mehrere Metriken abfragen und diagrammfähige Daten mit Zeitstempeln, Linienreihen und Formatierungshinweisen erhalten.
Anfrage:
POST /internal/v1/logging/metrics/chart
Authorization: Bearer <token>
Content-Type: application/json
{
"duration": 86400,
"interval": 3600,
"TickFormat": "l",
"LabelFormat": "lll",
"metricQuery": [
{
"metric": "proc.cpu.usage",
"labelQuery": [
{ "label": [{ "key": "mod", "value": "collector.ad" }] }
],
"dimension": "nid",
"aggregate": "max",
"name": "AD Collector CPU"
}
]
}WidgetQuery-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
start | int64 | Abfragestart (Unix-Sekunden). Optional — Standard ist now - duration |
end | int64 | Abfrageende (Unix-Sekunden). Optional — Standard ist now |
duration | int64 | Zeitfenster in Sekunden (z. B. 86400 = 24 Stunden) |
interval | int64 | Aggregations-Bucket-Größe in Sekunden (z. B. 3600 = 1 Stunde) |
TickFormat | string | Achsenbeschriftungsformat (z. B. "l" für Kurzdatum) |
LabelFormat | string | Datenbeschriftungsformat (z. B. "lll" für vollständiges Datum-Uhrzeit) |
metricQuery | MetricQuery[] | Eine oder mehrere Metrikabfragen |
MetricQuery-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
metric | string | Metrikname (siehe Verfügbare Metriken) |
labelQuery | LabelQuery[] | Label-Filter zur Eingrenzung der Metrik |
dimension | string | Dimension für die Gruppierung (siehe Dimensionen) |
start | int64 | Abfragestart für diese Metrik überschreiben |
end | int64 | Abfrageende für diese Metrik überschreiben |
duration | int64 | Dauer für diese Metrik überschreiben |
interval | int64 | Intervall für diese Metrik überschreiben |
aggregate | string | Aggregationsfunktion: sum, avg, min, max, lst |
combine | string[] | Dimensionen zum Kombinieren (mehrere Reihen zusammenführen) |
name | string | Anzeigebezeichnung für diese Metrikreihe |
LabelQuery
| Feld | Typ | Beschreibung |
|---|---|---|
label | Label[] | Array von Schlüssel-Wert-Paaren, die alle übereinstimmen müssen |
Label
| Feld | Typ | Beschreibung |
|---|---|---|
key | string | Label-Schlüssel (z. B. "mod", "nid") |
value | string | Label-Wert (z. B. "collector.ad", "node-001") |
Antwort (200):
{
"data": [1707609600, 1707613200, 1707616800],
"lines": [
{
"id": "proc.cpu.usage-node-001",
"labels": { "mod": "collector.ad", "nid": "node-001" },
"metric": "proc.cpu.usage",
"key": "node-001",
"name": "AD Collector CPU",
"type": "gauge",
"unit": "%",
"metricPoint": {
"1707609600": 23.5,
"1707613200": 45.2,
"1707616800": 31.8
}
}
],
"labelFormat": "lll",
"tickFormat": "l",
"start": 1707609600,
"end": 1707696000,
"interval": 3600,
"timestamp": 1707696000000
}Diagramm-Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
data | int64[] | Array von Zeitstempeln (Unix-Sekunden) für die X-Achse |
lines | ChartLine[] | Eine Reihe pro Metrik-Dimensionswert |
lines[].id | string | Eindeutiger Reihenbezeichner |
lines[].labels | map<string, string> | Label-Schlüssel-Wert-Paare für diese Reihe |
lines[].metric | string | Metrikname |
lines[].key | string | Dimensionswert, den diese Reihe darstellt |
lines[].name | string | Anzeigebezeichnung |
lines[].metricPoint | map<int64, float64> | Zeitstempel-zu-Wert-Zuordnung |
labelFormat | string | Formatierungshinweis für Beschriftungen |
tickFormat | string | Formatierungshinweis für Achsenbeschriftungen |
start | int64 | Tatsächlicher Abfragestart (Unix-Sekunden) |
end | int64 | Tatsächliches Abfrageende (Unix-Sekunden) |
interval | int64 | Verwendetes Aggregationsintervall |
timestamp | int64 | Zeitpunkt der Antwortgenerierung (ms seit Epoch) |
POST /internal/v1/logging/metrics
Rohe Metrik-Datenpunkte ohne Diagrammformatierung abfragen.
Anfrage:
POST /internal/v1/logging/metrics
Authorization: Bearer <token>
Content-Type: application/json
{
"metric": "proc.mem.usage",
"labelQuery": [
{ "label": [{ "key": "mod", "value": "datastore" }] }
],
"dimension": "nid",
"duration": 3600,
"interval": 300,
"aggregate": "avg"
}Antwort (200): Array von Metrikobjekten mit Label-Sets und Datenpunkten.
GET /internal/v1/logging/dashboard/:did
Eine Dashboard-Konfiguration einschließlich ihrer geordneten Widget-Liste abrufen.
Pfadparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
did | string | Dashboard-Bezeichner (main oder identity) |
Anfrage:
GET /internal/v1/logging/dashboard/main
Authorization: Bearer <token>Antwort (200):
{
"id": "main",
"name": "main",
"includeDefault": true,
"widget": [
"Controller CPU",
"Controller Memory",
"Registry CPU",
"Web Services HTTP Request Summary",
"Web Services Successful Logons"
],
"userWidget": []
}Dashboard-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Dashboard-Bezeichner |
name | string | Anzeigename |
includeDefault | bool | Ob Standard-System-Widgets einbezogen werden |
widget | string[] | Geordnete Liste von Widget-Namen |
userWidget | string[] | Vom Benutzer hinzugefügte Widgets |
Verfügbare Metriken
Systemprozess-Metriken
| Metrik | Beschreibung | Label-Filter | Diagrammtyp |
|---|---|---|---|
proc.cpu.usage | CPU-Auslastung in Prozent | mod = Modulname | LineChart |
proc.mem.usage | Speichernutzung | mod = Modulname | LineChart |
Modul-Labels für proc.cpu.usage und proc.mem.usage:
Label-Wert (mod) | Dienst |
|---|---|
controller | Controller |
registry | Registry |
collector.ad | Active Directory Collector |
collector.azure | Azure Collector |
collector.okta | Okta Collector |
collector.linux | Linux Collector |
collector.windows | Windows Collector |
datastore | Datastore |
reporting | Reporting |
entitystore | Entity Store |
commshub | Communications Hub |
audit | Audit |
apigw | API Gateway (Web Services) |
scheduler | Scheduler |
idmapper | ID Mapper |
dashboard | Dashboard |
Dateisystem-Metriken
| Metrik | Beschreibung | Diagrammtyp |
|---|---|---|
sys.fs.free | Freier Festplattenspeicher | LineChart |
sys.fs.size | Gesamte Festplattenkapazität | LineChart |
sys.fs.usage | Belegter Festplattenspeicher | LineChart |
Web-Traffic-Metriken
| Metrik | Beschreibung | Dimension | Diagrammtyp |
|---|---|---|---|
http.request | HTTP-Anfragenanzahl | l6n (Standort) oder ctn (Mandant) | BarChart / PieChart |
signin.success | Erfolgreiche Anmeldungen | — | BarChart |
signin.failure | Fehlgeschlagene Anmeldeversuche | — | BarChart |
Identitätserfassungs-Metriken
| Metrik | Beschreibung | Dimension | Diagrammtyp |
|---|---|---|---|
identity.collection.accounts.total | Gesamtzahl erkannter Konten | — | Text |
identity.collection.accounts | Konten nach Collector | cid (Collector-ID) | BarChart / PieChart |
identity.collection.accounts.new | Neue Konten nach Collector | cid | BarChart |
identity.collection.accounts.stale.account | Anzahl veralteter Konten | — | Text |
identity.collection.accounts.stale.password | Anzahl veralteter Passwörter | — | Text |
identity.collection.scan | Erfassungsscans | cid | BarChart / PieChart |
identity.collection.scan.fail | Fehlgeschlagene Scans | cid | BarChart |
Dimensionen
Dimensionen steuern, wie Metrikdaten in separate Reihen gruppiert werden.
| Dimension | Beschreibung | Beispiel |
|---|---|---|
nid | Knoten-ID — Gruppierung nach Discovery-Collector-Knoten | Eine Linie pro Collector-Knoten |
mod | Modulname — Gruppierung nach Dienstmodul | Eine Linie pro Dienst |
l6n | Standort — Gruppierung nach geografischem Standort | Ein Segment pro Standort |
ctn | Mandant — Gruppierung nach Mandant | Eine Reihe pro Mandant |
cid | Collector-/Datenquellen-ID | Ein Balken pro Datenquelle |
tid | Mandanten-ID | Metriken pro Mandant |
age | Altersschwellenwert | Für Einteilung veralteter Passwörter/Konten |
Aggregationsfunktionen
| Funktion | Beschreibung |
|---|---|
sum | Summe aller Werte im Bucket |
avg | Durchschnittswert im Bucket |
min | Minimaler Wert im Bucket |
max | Maximaler Wert im Bucket |
lst | Letzter (aktuellster) Wert im Bucket |
Vordefinierte Widgets
Haupt-Dashboard-Widgets
Dienstressourcen-Überwachung:
| Widget-Name | Metrik | Label-Filter | Diagramm |
|---|---|---|---|
| Controller CPU | proc.cpu.usage | mod=controller | LineChart |
| Controller Memory | proc.mem.usage | mod=controller | LineChart |
| Registry CPU | proc.cpu.usage | mod=registry | LineChart |
| Registry Memory | proc.mem.usage | mod=registry | LineChart |
| Active Directory Collector CPU | proc.cpu.usage | mod=collector.ad | LineChart |
| Active Directory Collector Memory | proc.mem.usage | mod=collector.ad | LineChart |
| Azure Collector CPU | proc.cpu.usage | mod=collector.azure | LineChart |
| Azure Collector Memory | proc.mem.usage | mod=collector.azure | LineChart |
| Okta Collector CPU | proc.cpu.usage | mod=collector.okta | LineChart |
| Okta Collector Memory | proc.mem.usage | mod=collector.okta | LineChart |
| Linux Collector CPU | proc.cpu.usage | mod=collector.linux | LineChart |
| Linux Collector Memory | proc.mem.usage | mod=collector.linux | LineChart |
| Windows Collector CPU | proc.cpu.usage | mod=collector.windows | LineChart |
| Windows Collector Memory | proc.mem.usage | mod=collector.windows | LineChart |
| Datastore CPU | proc.cpu.usage | mod=datastore | LineChart |
| Datastore Memory | proc.mem.usage | mod=datastore | LineChart |
| Reporting CPU | proc.cpu.usage | mod=reporting | LineChart |
| Reporting Memory | proc.mem.usage | mod=reporting | LineChart |
| Entitystore CPU | proc.cpu.usage | mod=entitystore | LineChart |
| Entitystore Memory | proc.mem.usage | mod=entitystore | LineChart |
| Communications Hub CPU | proc.cpu.usage | mod=commshub | LineChart |
| Communications Hub Memory | proc.mem.usage | mod=commshub | LineChart |
| Audit CPU | proc.cpu.usage | mod=audit | LineChart |
| Audit Memory | proc.mem.usage | mod=audit | LineChart |
| Web Services CPU | proc.cpu.usage | mod=apigw | LineChart |
| Web Services Memory | proc.mem.usage | mod=apigw | LineChart |
| Scheduler CPU | proc.cpu.usage | mod=scheduler | LineChart |
| Scheduler Memory | proc.mem.usage | mod=scheduler | LineChart |
| ID Mapper CPU | proc.cpu.usage | mod=idmapper | LineChart |
| ID Mapper Memory | proc.mem.usage | mod=idmapper | LineChart |
| Dashboard CPU | proc.cpu.usage | mod=dashboard | LineChart |
| Dashboard Memory | proc.mem.usage | mod=dashboard | LineChart |
Speicherüberwachung:
| Widget-Name | Metrik | Diagramm |
|---|---|---|
| Data Storage Free Space | sys.fs.free | LineChart |
| Data Storage Capacity | sys.fs.size | LineChart |
| Data Storage Usage | sys.fs.usage | LineChart |
Web-Traffic-Überwachung:
| Widget-Name | Metrik | Dimension | Diagramm |
|---|---|---|---|
| Web Services HTTP Request Summary | http.request | l6n | PieChart |
| Web Services HTTP Request History | http.request | l6n | BarChart |
| Tenant HTTP Request Summary | http.request | ctn | PieChart |
| Tenant HTTP Request History | http.request | ctn | BarChart |
| Web Services Successful Logons | signin.success | — | BarChart |
| Web Services Failed Logons | signin.failure | — | BarChart |
Identitäts-Dashboard-Widgets
| Widget-Name | Metrik | Dimension | Diagramm |
|---|---|---|---|
| Total Discovered Accounts | identity.collection.accounts.total | — | Text |
| Total Scans | identity.collection.scan | — | BarChart |
| Accounts by Platform Summary | identity.collection.accounts | cid | PieChart |
| Accounts by Platform History | identity.collection.accounts | cid | BarChart |
| Active Directory Accounts | identity.collection.accounts | cid (AD) | BarChart |
| New Active Directory Accounts | identity.collection.accounts.new | cid (AD) | BarChart |
| Azure Accounts | identity.collection.accounts | cid (Azure) | BarChart |
| Okta Accounts | identity.collection.accounts | cid (Okta) | BarChart |
| Linux Host Accounts | identity.collection.accounts | cid (Linux) | BarChart |
| Windows Host Accounts | identity.collection.accounts | cid (Windows) | BarChart |
| AD Computers Accounts | identity.collection.accounts | cid (AD Computers) | BarChart |
| New Accounts by Platform | identity.collection.accounts.new | cid | BarChart |
| Scans by Platform Summary | identity.collection.scan | cid | PieChart |
| Scans by Platform History | identity.collection.scan | cid | BarChart |
| Stale Passwords | identity.collection.accounts.stale.password | — | Text |
| Stale Accounts | identity.collection.accounts.stale.account | — | Text |
Diagrammtypen
| Typ | Beschreibung | Anwendungsfall |
|---|---|---|
LineChart | Zeitreihen-Liniendiagramm | CPU-/Speichertrends, Ressourcenauslastung im Zeitverlauf |
BarChart | Kategorisches Balkendiagramm | Anmeldeanzahlen, Konten nach Plattform, Scan-Verlauf |
PieChart | Proportionales Kreisdiagramm | Verteilungszusammenfassungen (HTTP nach Standort, Konten nach Plattform) |
Text | Einzelne numerische Wertanzeige | Gesamtanzahlen (erkannte Konten, veraltete Passwörter) |
