In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte Dashboards und die Widgets in diesen Dashboards mithilfe der Ressource Dashboard
in der Cloud Monitoring API erstellen und verwalten.
Die Beispiele hier veranschaulichen, wie Sie Ihre Dashboards mit curl
verwalten, um die API aufzurufen. Außerdem wird gezeigt, wie Sie die Google Cloud CLI verwenden.
Sie können Ihre benutzerdefinierten Dashboards auch über dieGoogle Cloud Console verwalten. Die API bietet jedoch eine programmatische Möglichkeit, viele Dashboards gleichzeitig zu verwalten.
Der Endpunkt unterstützt die folgenden Methoden zum Verwalten und Konfigurieren von Dashboards:
dashboards.create
: Erstellt ein Dashboarddashboards.delete
: Löscht ein bestimmtes Dashboarddashboards.list
: Ruft eine Liste aller Dashboards in einem bestimmten Projekt abdashboards.get
: Ruft ein bestimmtes Dashboard abdashboards.patch
: Aktualisiert die Struktur eines bestimmten Dashboards
Sie können die API direkt mit dem Dienstprogramm curl
oder mit der Google Cloud CLI aufrufen.
Sie können vordefinierte Dashboards nicht abrufen, bearbeiten oder löschen.
Diese Funktion wird nur für Google Cloud -Projekte unterstützt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
Dashboards
Beim Erstellen eines Dashboards müssen Sie angeben, welche Komponenten oder Widgets angezeigt werden sollen. Außerdem müssen Sie das Layout für diese Widgets festlegen. Sie können Ihrem Dashboard auch Labels und Filter hinzufügen. Mithilfe von Labels können Sie ein Dashboard finden oder den Inhaltstyp des Dashboards angeben.
Dashboard-Layouts
Layouts definieren die Reihenfolge der Komponenten eines Dashboards. Die API stellt die folgenden Layouts zur Verfügung:
GridLayout
: Teilt den verfügbaren Platz in vertikale Spalten mit gleicher Breite und ordnet einen Satz von Widgets mit einer Strategie an, bei der zuerst die Zeilen berücksichtigt werden (Row-first).MosaicLayout
: Teilt den verfügbaren Speicherplatz in ein Raster. Jedes Widget kann einen oder mehrere Rasterblöcke einnehmen.RowLayout
: Teilt den verfügbaren Platz in Zeilen und ordnet einen Satz von Widgets horizontal in jeder Zeile an.ColumnLayout
: Teilt den verfügbaren Platz in vertikale Spalten und ordnet einen Satz von Widgets vertikal in jeder Spalte an.
Im Folgenden wird die JSON-Darstellung eines Dashboards in RowLayout
mit drei Text
-Widgets dargestellt:
{
"displayName": "Row-layout example",
"rowLayout": {
"rows": [
{
"widgets": [
{
"text": {
"content": "Text Widget 1",
"format": "RAW"
}
},
{
"text": {
"content": "**Text Widget 2**",
"format": "MARKDOWN"
}
},
{
"text": {
"content": "_Text Widget 3_",
"format": "MARKDOWN"
}
}
]
}
]
}
}
Dashboardwidgets
Ein Widget enthält eine einzelne Dashboard-Komponente und die Konfiguration, wie die Komponente im Dashboard dargestellt wird. Ein Dashboard kann mehrere Widgets enthalten. Es gibt verschiedene Arten von Widget
-Objekten:
Im
XyChart
-Widget werden Daten über die X- und Y-Achse dargestellt.In diesem Widget werden Daten aus einem Dataset angezeigt, das Zeitreihendaten enthält oder durch eine SQL-Abfrage generiert wurde. Mit diesem Widget können Sie die dargestellten Daten entweder der linken oder der rechten Y-Achse zuordnen. Wenn mehrere Messwerttypen dargestellt werden, können Sie beide Y-Achsen verwenden. Das
XyChart
-Widget unterstützt die folgenden Darstellungsstile:- Liniendiagramme
- Balkendiagramme
- Gestapelte Flächendiagramme
- Heatmaps
Widgets, die Daten aus einer Dimension anzeigen, z. B. der letzte Wert:
PieChart
: Zeigt die letzten Werte einer Sammlung von Zeitreihen an, wobei jede Zeitreihe einen Segment zum Kreisdiagramm beiträgt.Scorecard
: Zeigt den aktuellsten Wert einer Zeitreihe an und wie sich dieser Wert auf einen oder mehrere Grenzwerte bezieht.TimeSeriesTable
: Zeigt den letzten Wert oder einen aggregierten Wert für jede Zeitreihe an. Tabellen lassen sich anpassen. Sie können beispielsweise Zellen farblich kennzeichnen und Spaltennamen und die Datenausrichtung konfigurieren.
Widgets, in denen Informationen zu Benachrichtigungsrichtlinien oder Vorfällen angezeigt werden:
AlertChart
: Zeigt eine Zusammenfassung einer Benachrichtigungsrichtlinie mit einer Bedingung an. In diesem Widget werden Daten als Liniendiagramm dargestellt. Außerdem werden der Grenzwert und die Anzahl der offenen Vorfälle angezeigt.IncidentList
: Zeigt eine Liste von Vorfällen an. Sie können das Widget so konfigurieren, dass Vorfälle für bestimmte Benachrichtigungsrichtlinien oder für bestimmte Ressourcentypen angezeigt werden.
Widgets, in denen Logeinträge und Fehler angezeigt werden:
ErrorReportingPanel
: Hier werden Fehlergruppen angezeigt, die im ausgewähltenGoogle Cloud -Projekt gespeichert sind.LogsPanel
: Zeigt Logeinträge auf Projektebene an, die im aktuellen Google Cloud Projekt gespeichert sind. Sie können das Widget so konfigurieren, dass Logeinträge angezeigt werden, die in Google Cloud -Projekten gespeichert sind, auf die über den aktuellen Messwertbereich zugegriffen werden kann.
Text- und Organisations-Widgets:
CollapsibleGroup
: Hier wird eine Sammlung von Widgets angezeigt. Sie können die Ansicht einer Gruppe minimieren.SingleViewGroup
: Zeigt ein Widget in einer Sammlung von Widgets an. Sie können auswählen, welches Widget angezeigt werden soll.SectionHeader
: Erstellt eine horizontale Trennlinie im Dashboard und einen Eintrag im Inhaltsverzeichnis des Dashboards.Text
: Zeigt den Textinhalt entweder als Rohtext oder als Markdown-String an.
Damit die Text- und Organisations-Widgets in einem Dashboard angezeigt werden, muss das Dashboard eine
MosaicLayout
haben.
Zusätzlich zu diesen Objekten können Sie auch einen leeren Platzhalter zu einem Dashboard hinzufügen.
Im Folgenden wird beispielsweise die JSON-Darstellung eines XyChart
-Widgets angezeigt, dessen rechte Y-Achse konfiguriert ist:
{
"displayName": "Demo dashboard",
"gridLayout": {
"widgets": [
{
"title": "Sample line chart",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
"aggregation": {
"perSeriesAligner": "ALIGN_MEAN",
"crossSeriesReducer": "REDUCE_MAX",
"groupByFields": [
"resource.label.zone"
]
}
},
"unitOverride": "1"
},
"plotType": "LINE"
}
],
"timeshiftDuration": "0s",
"yAxis": {
"label": "y1Axis",
"scale": "LINEAR"
},
"chartOptions": {
"mode": "COLOR"
}
}
}
]
}
}
Dashboardlabels
Mit Labels können Sie Ihre Dashboards verwalten und organisieren. Sie können beispielsweise das Label prod
hinzufügen, um anzugeben, dass im Dashboard Zeitreihendaten und Logdaten für Ihre Produktionsressourcen angezeigt werden. Alternativ können Sie das Label playbook
hinzufügen, um anzugeben, dass das Dashboard Informationen zur Fehlerbehebung enthält.
Das Hinzufügen von Labels zu einem Dashboard ist optional.
Das folgende Beispiel zeigt ein Dashboard
-Objekt, das das Label mit dem Namen playbook
angibt.
{
"displayName": "Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
...
]
},
"dashboardFilters": [],
"labels": {
"playbook": ""
}
}
Wie das vorherige Beispiel zeigt, wird das Feld labels
als map
implementiert, wobei die Felder key
und value
beide Strings sind. Wenn Sie einem Dashboard ein Label hinzufügen, legen Sie key
auf den Namen des Labels und das Feld value
auf einen leeren String fest.
Dashboard-Filter und ‑Variablen
Beim Erstellen eines Dashboards stellen Sie möglicherweise fest, dass die darin enthaltenen Daten auf verschiedene Arten dargestellt werden können. Angenommen, in einem Dashboard werden Zeitreihendaten für Ihre VM-Instanzen angezeigt. Möglicherweise möchten Sie die Zeitachsendaten für alle VMs oder nur die Daten in einer bestimmten Zone ansehen. In diesem Fall empfehlen wir, einen angepinnten Filter oder eine Variable zu erstellen und den Standardwert dieses Filters auf die am häufigsten aufgerufene Zone festzulegen.
Angepinnte Filter werden auf alle Dashboard-Widgets angewendet, die das im Filter angegebene Label unterstützen, sofern das Widget keinen Filter mit demselben Label-Schlüssel enthält.
Wenn ein Diagramm beispielsweise den Filter zone = us-central1-a
enthält, wird ein angepinnter Filter mit dem Label-Schlüssel zone
ignoriert. Dieser Filter wird auch von Diagrammen ignoriert, die kein Label mit dem Schlüssel zone
haben.
Variablen ähneln angepinnten Filtern, werden aber nur auf bestimmte Widgets angewendet. Variablen können wie angepinnte Filter auf Labels basieren oder nur einen Wert haben. Variablen mit nur Werten enthalten einen oder mehrere Standardwerte und eine Liste aller möglichen Werte. Wenn Sie keinen Standardwert angeben, wird der Standardwert auf den Platzhalteroperator (*)
festgelegt.
Um den Satz aller möglichen Werte zu definieren, geben Sie entweder ein Array von Werten an oder schreiben eine SQL-Abfrage.
Bei Widgets, mit denen Daten abgefragt werden, können Sie eine Variable in die Abfrage des Widgets einfügen und die Sichtbarkeit des Widgets mit einer Variablen steuern. Wenn die Abfrage von einer Variablen abhängt, ändern sich die Daten, die vom Widget angefordert werden, wenn Sie den Wert der Variablen ändern. Dadurch ändern sich auch die angezeigten Daten. Wenn Sie eine Variable verwenden, um die Sichtbarkeit eines Widgets zu steuern, wird in der Symbolleiste das Symbol visibility Sichtbar angezeigt. Informationen zu Einschränkungen in Bezug auf die Sichtbarkeit finden Sie unter Sichtbarkeit eines Widgets festlegen.
Sowohl für angepinnte Filter als auch für Variablen wird in der Dashboard-Symbolleiste jede Variable zusammen mit einem Menü angezeigt, in dem Sie den Wert der Variablen vorübergehend ändern können. Für angepinnte Filter und Variablen wird dieselbe Datenstruktur verwendet. Damit Sie Filter und Variablen besser unterscheiden können, wird in der Dashboard-Symbolleiste dem Namen einer Variablen ein Dollarzeichen $
vorangestellt.
Weitere Informationen finden Sie unter DashboardFilter
.
Ein Beispiel, das zeigt, wie Sie die Sichtbarkeit von Widgets mit einer Variablen steuern können, finden Sie unter Dashboard mit konfigurierter Widget-Sichtbarkeit.
Informationen zum Aktualisieren der Abfrage eines Widgets mit einer labelbasierten oder einer reinen Wertvariablen finden Sie in den folgenden Abschnitten:
- Allgemeine Syntax zum Dereferenzieren einer Variablen
- Widgets für den Bereich „Logs“
- Diagramme mit PromQL-Abfragen
- Diagramme mit SQL-Abfragen
- Diagramme mit MQL-Abfragen
Diagramme mit Monitoring-Filterabfragen
Wenn Sie die menügesteuerte Benutzeroberfläche verwenden, um ein Diagramm mit Zeitachsendaten zu erstellen, werden Ihre Auswahlmöglichkeiten in einen Monitoring-Filter umgewandelt.
Filter und Variablen erstellen
Console
Informationen zum Erstellen angepinnter Filter und Variablen mit der Google Cloud Console finden Sie in den folgenden Dokumenten:
API
Verwenden Sie die Datenstruktur dashboardFilters
, um angepinnte Filter und Variablen zu definieren.
- Um eine Variable zu erstellen, legen Sie den Wert des Felds
templateVariable
auf den Namen der Variable fest. Lassen Sie dieses Feld weg oder legen Sie den Wert auf einen leeren String fest, wenn Sie einen angepinnten Filter erstellen möchten. - Wenn Sie einen angepinnten Filter oder eine labelbasierte Variable erstellen möchten, müssen Sie das Feld
labelKey
angeben. Lassen Sie dieses Feld weg, wenn Sie eine Variable nur mit einem Wert haben möchten. Legen Sie den Standardwert für den Filter oder die Variable fest. Die Konfiguration dieses Felds bestimmt, ob ein Nutzer genau eine Option aus dem Menü mit Werten oder mehrere Werte auswählen kann.
- Wenn Sie einen einzelnen Standardwert festlegen und Nutzer darauf beschränken möchten, genau eine Option im Menü „Werte“ auszuwählen, legen Sie das Feld
valueType
aufSTRING
und das FeldstringValue
fest:
"valueType": "STRING", "stringValue": "my-default-value",
- Wenn Sie mindestens einen Standardwert festlegen und Nutzern erlauben möchten, mehrere Optionen im Menü „Werte“ auszuwählen, legen Sie das Feld
valueType
aufSTRING_ARRAY
fest und legen Sie auch das FeldstringArrayValue
fest. Im folgenden Beispiel gibt es drei Standardwerte.
"valueType": "STRING_ARRAY", "stringArrayValue": { "values": [ "a", "b", "c" ] },
- Wenn Sie einen einzelnen Standardwert festlegen und Nutzer darauf beschränken möchten, genau eine Option im Menü „Werte“ auszuwählen, legen Sie das Feld
Optional: Wenn Sie die Liste aller möglichen Werte für eine Variable mit nur einem Wert angeben möchten, legen Sie entweder das Feld
stringArray
oder das FeldtimeSeriesQuery
fest. Wenn Sie eine Abfrage angeben, muss es sich um eine Analyseabfrage handeln.
Betrachten Sie beispielsweise das folgende dashboardFilters
-Objekt:
{ "dashboardFilters": [ { "labelKey": "zone" "stringValue": "us-central1-c", "valueType": "STRING", "filterType": "RESOURCE_LABEL" }, { "labelKey": "instance_id", "stringValue": "3133577226154888113", "valueType": "STRING", "filterType": "RESOURCE_LABEL", "templateVariable": "my_label_based_variable" }, { "filterType": "VALUE_ONLY", "templateVariable": "my_value_only_variable", timeSeriesQuery: { opsAnalyticsQuery: { sql: " SELECT log_name FROM `MY_TABLE` GROUP BY log_name ", } } } ], "displayName": "Illustrate Variables", ... }
Im vorherigen JSON-Code werden ein angepinnter Filter und zwei Variablen definiert:
Der angepinnte Filter hat den Labelschlüssel
zone
, der in der Symbolleiste angezeigt wird. Die FeldervalueType
undstringValue
geben den einzelnen Standardwert an. Weitere Informationen finden Sie auf der Seite „API-Referenzen“ für die DatenstrukturdashboardFilters
.Die labelbasierte Variable hat den Namen
my_label_based_variable
und den Labelschlüsselinstance_id
. Der Standardwert für diese Variable ist auf eine bestimmte Instanz-ID festgelegt. Sie können den Standardwert auch mit einem Array konfigurieren. In der Symbolleiste wird der Filter mit dem Namenmy_label_based_variable
angezeigt.Die Variable, die nur den Wert enthält, heißt
my_value_only_variable
. Für diesen Eintrag ist kein Standardwert angegeben. Daher wird automatisch der Platzhalteroperator(*)
angewendet. Außerdem wird für diese Variable eine SQL-Abfrage verwendet, um die Liste der möglichen Werte für die Variable zu generieren.
Im dashboardFilters
-Objekt sind die Widgets, auf die sich die Variable bezieht, nicht aufgeführt. Stattdessen aktualisieren Sie die Abfrage eines Widgets, sodass sie von einer Variablen abhängt.
Allgemeine Syntax zum Dereferenzieren einer Variablen
Verwenden Sie für alle Widgets, die nicht durch SQL definiert werden, die folgende Syntax, um eine Variable auf eine Abfrage anzuwenden:
Wenn Sie eine labelbasierte Variable anwenden und der Labelschlüssel und der Labelwert in einen gültigen Filterausdruck für die Abfragesprache aufgelöst werden sollen, verwenden Sie
${my_label_based_variable}
.Wenn Sie nur den Wert einer labelbasierten Variablen anwenden möchten, verwenden Sie
${my_label_based_variable.value}
. Für den Vergleich muss ein regulärer Ausdruck verwendet werden.Wenn Sie nur den Wert einer Variablen verwenden möchten, die nur einen Wert enthält, verwenden Sie
${my_value_only_variable}
. Für Variablen, die nur Werte enthalten, darf keine.value
-Klausel angegeben werden. Für den Vergleich muss ein regulärer Ausdruck verwendet werden.
Widgets für den Logbereich
Wenn Sie eine Variable auf ein Widget im Bereich „Logs“ anwenden möchten, aktualisieren Sie den Bereich „Abfragen“. Die Syntax für diese Widgets entspricht der unter Allgemeine Syntax angegebenen Syntax.
Console
In der folgenden Abfrage wird beispielsweise ein regulärer Ausdruck verwendet, um den Wert des Felds jsonPayload.message
mit einem Stringwert zu vergleichen, der den Wert einer labelbasierten Variablen enthält:
jsonPayload.message=~"Connected to instance: ${my_label_based_variable.value}"
Nehmen wir als weiteres Beispiel eine Variable mit nur Werten, value_only_severity_variable
, an und gehen wir davon aus, dass im Menü der Werte drei Werte ausgewählt sind: ERROR
, INFO
und NOTICE
.
Fügen Sie als Nächstes Folgendes in den Abfragebereich des Logbereich-Widgets ein:
severity =~ "${value_only_severity_variable}"
Das folgende Beispiel zeigt die gerenderte Form:
severity =~ "^(ERROR|INFO|NOTICE)$"
API
Das folgende JSON-Beispiel zeigt, wie Sie die Abfrage eines Protokollbereichs-Widgets mit einer labelbasierten Variablen aktualisieren:
"logsPanel": { "filter": "${my_label_based_variable}", "resourceNames": [ "projects/1234512345" ] },
In der folgenden Abfrage wird beispielsweise ein regulärer Ausdruck verwendet, um den Wert des Felds jsonPayload.message
mit einem Stringwert zu vergleichen, der den Wert einer labelbasierten Variablen enthält:
"logsPanel": { "filter": "resource.type=\"gce_instance\"\n resource.labels.project_id=~\"${my_label_based_variable.value}\"\n", "resourceNames": [ "projects/012345" ] }
Ein weiteres Beispiel: Angenommen, Sie haben eine Variable, die nur Werte enthält, value_only_severity_variable
, und im Menü sind drei Werte ausgewählt: ERROR
, INFO
und NOTICE
.
Fügen Sie als Nächstes Folgendes in den Abfragebereich des Logbereich-Widgets ein:
"logsPanel": {
"filter": "severity =~ \"${value_only_severity_variable}\"\n",
...
}
Das folgende Beispiel zeigt die Abfrage, wie sie vom Widget für den Logbereich ausgeführt wird:
severity =~ "^(ERROR|INFO|NOTICE)$"
Wenn Sie eine Abfrage für den Logbereich konfiguriert haben und dann die Schaltfläche zum Öffnen des Log-Explorers auswählen, werden die Variablen aufgelöst, bevor der Log-Explorer geöffnet wird.
In der folgenden Tabelle wird veranschaulicht, wie die Beispielvariablen im Logbereich aufgelöst werden. Wie bereits erwähnt, müssen Sie einen regulären Ausdruck als Vergleichsoperator verwenden, wenn nur der Wert einer Variablen verwendet wird:
Syntax | Ausgewählter Wert |
Aufgelöster Ausdruck für das Logfeld |
---|---|---|
${my_label_based_variable} |
12345 |
resource.labels."instance_id"="12345"
Die Beispielvariable basiert auf dem Ressourcenlabel |
${my_label_based_variable} |
* |
"" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.* |
Diagramme mit PromQL-Abfragen
Wenn Sie ein Diagramm mit einer PromQL-Abfrage so aktualisieren möchten, dass es von einer labelbasierten Variablen abhängt, folgen Sie der Anleitung unter Allgemeine Syntax.
Console
In der folgenden Abfrage wird beispielsweise die labelbasierte Variable my_label_based_variable
in einen Filterausdruck aufgelöst:
compute_googleapis_com:instance_cpu_utilization{ monitored_resource="gce_instance", ${my_label_based_variable} }
Sie können die Abfrage auch so ändern, dass nur der Wert einer Variablen aufgelöst wird.
Im folgenden Beispiel wird ein regulärer Ausdruck verwendet, um den Wert einer labelbasierten Abfrage mit instance_id
zu vergleichen:
compute_googleapis_com:instance_cpu_utilization{ instance_id=~"${my_label_based_variable.value}" }
Wenn Sie eine Variable haben, die nur einen Wert enthält, lassen Sie die .value
-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und dazu eine Variable verwenden, die nur Werte enthält, würde die Abfrage etwa so aussehen:
zone=~"${my_value_only_variable}"
API
Das folgende JSON-Beispiel zeigt eine Abfrage, bei der die labelbasierte Variable my_label_based_variable
in einen Filterausdruck aufgelöst wird:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", ${my_label_based_variable} }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Sie können die Abfrage auch so ändern, dass nur der Wert einer Variablen aufgelöst wird.
Im folgenden Beispiel wird ein regulärer Ausdruck verwendet, um den Wert einer labelbasierten Abfrage mit instance_id
zu vergleichen:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", instance_id=~\"${my_label_based_variable.value}\" }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Wenn Sie eine Variable haben, die nur einen Wert enthält, lassen Sie die .value
-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und dazu eine Variable verwenden, die nur Werte enthält, würde die Abfrage etwa so aussehen:
zone=~\"${my_value_only_variable}\"
Die folgende Tabelle veranschaulicht, wie die Beispielvariablen von PromQL aufgelöst werden. Wie bereits erwähnt, müssen Sie einen regulären Ausdruck als Vergleichsoperator verwenden, wenn nur der Wert einer Variablen verwendet wird:
Syntax | Ausgewählter Wert |
Aufgelöster PromQL-Ausdruck |
---|---|---|
${my_label_based_variable} |
12345 |
instance_id == '12345'
Die Beispielvariable basiert auf dem Ressourcenlabel |
${my_label_based_variable} |
* |
noop_filter=~".*" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.+ |
Diagramme mit SQL-Abfragen
Wenn Sie ein SQL-definiertes Widget aktualisieren möchten, sodass es von einer Variablen abhängt, müssen Sie die WHERE
-Klausel so aktualisieren, dass sie auf den Wert der Variablen verweist.
Setzen Sie vor den Variablennamen das „at“-Zeichen, z. B. @variable_name
. Hängen Sie bei labelbasierten Variablen .value
an den Variablennamen @my_label_based_variabe.value
an.
Bei SQL-Abfragen basiert die Variablensubstitution auf BigQuery und ist vor SQL-Injection geschützt. Weitere Informationen finden Sie unter Parametrisierte Abfragen ausführen.
Console
Da der Platzhalteroperator in SQL nicht als „beliebiger Wert“ interpretiert wird, empfehlen wir, bei der Verwendung von Variablen in einer SQL-Abfrage immer eine IF
-Anweisung zu verwenden. Im folgenden Beispiel wird die Verwendung für eine Variable mit nur einem Wert veranschaulicht, deren Datentyp ein String ist:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Wenn Nutzer über die Menüoption für die Variable mehrere Werte auswählen können, müssen Sie den Wert der Variablen mit der Funktion CAST
in einen GoogleSQL-Datentyp umwandeln.
Die folgende Abfrage veranschaulicht diese Syntax:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
Die in den vorherigen Beispielen gezeigte IF
-Anweisung wird empfohlen, da der Platzhalteroperator in SQL nicht als „beliebiger Wert“ interpretiert wird. Wenn Sie die IF
-Anweisung weglassen und den Platzhalteroperator auswählen, ist das Ergebnis der Abfrage also eine leere Tabelle. Im zweiten Beispiel wird das Array mit der Funktion UNNEST
in eine Tabelle konvertiert.
So fügen Sie eine korrekt formatierte WHERE
-Klausel hinzu:
- Bearbeiten Sie das Widget.
- Wählen Sie in der Symbolleiste Variablenfilter einfügen und dann die Variable aus, deren
WHERE
-Klausel Sie aktualisieren möchten. - Sehen Sie sich den generierten Code im angezeigten Dialogfeld an und klicken Sie dann auf Kopieren und schließen.
Fügen Sie den kopierten Code in den Bereich Abfrage ein und nehmen Sie die erforderlichen Änderungen vor.
Angenommen, Sie erstellen eine Variable mit dem Namen
LogName
, die eine Liste von Log-Namen generiert und das Ergebnis in einer Tabelle mit einer einzelnen Spalte namenslog_name
ausgibt. Als Nächstes erstellen Sie ein Diagramm, wählen Variablenfilter einfügen aus und wählen dann die VariableLogName
aus. Der folgende Code wird generiert:WHERE IF(@LogName = '*', TRUE, LogName = @LogName)
In diesem Beispiel müssen Sie den generierten Code bearbeiten und
LogName =
durchlog_name =
ersetzen, damit die Tabellenverknüpfung erfolgen kann:WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
Klicken Sie auf Ausführen und dann auf Anwenden.
Klicken Sie zum Speichern des geänderten Dashboards in der Symbolleiste auf Speichern.
API
Da der Platzhalteroperator in SQL nicht als „beliebiger Wert“ interpretiert wird, empfehlen wir, bei der Verwendung von Variablen in einer SQL-Abfrage immer eine IF
-Anweisung zu verwenden. Im folgenden Beispiel wird die Verwendung für eine Variable mit nur einem Wert veranschaulicht, deren Datentyp ein String ist:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Im Folgenden sehen Sie beispielsweise eine teilweise JSON-Darstellung eines Diagramms, in dem die Ergebnisse einer SQL-Abfrage angezeigt werden. Damit die Ergebnisse nach dem Namen eines Logs gefiltert werden können, wurde eine WHERE
-Klausel hinzugefügt, die auf die Variable LogName
verweist:
"plotType": "STACKED_BAR", "targetAxis": "Y1", "timeSeriesQuery": { "opsAnalyticsQuery": { "queryExecutionRules": {}, "queryHandle": "", "sql": "SELECT\n timestamp, severity, resource.type, log_name, text_payload, proto_payload, json_payload\n FROM\n `my-project.global._Default._Default`\n WHERE \n IF (@LogName = \"*\", TRUE, log_name=@LogName)\nLIMIT 10000" } }
Die Variable LogName
führt auch eine Anfrage aus, um die Liste der möglichen Protokollnamen zu ermitteln:
"dashboardFilters": [ { "filterType": "VALUE_ONLY", "templateVariable": "LogName", "valueType": "STRING", "timeSeriesQuery": { "opsAnalyticsQuery": { "savedQueryId": "", "sql": "SELECT log_name FROM `my-project.global._Default._Default` GROUP BY log_name LIMIT 1000", "queryHandle": "" }, "unitOverride": "", "outputFullDuration": false } } ],
Wenn Nutzer über die Menüoption für die Variable mehrere Werte auswählen können, müssen Sie den Wert der Variablen mit der Funktion CAST
in einen GoogleSQL-Datentyp umwandeln.
Die folgende Abfrage veranschaulicht diese Syntax:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
Die in den vorherigen Beispielen gezeigte IF
-Anweisung wird empfohlen, da der Platzhalteroperator in SQL nicht als „beliebiger Wert“ interpretiert wird. Wenn Sie die IF
-Anweisung weglassen und den Platzhalteroperator auswählen, ist das Ergebnis der Abfrage also eine leere Tabelle. Im zweiten Beispiel wird das Array mit der Funktion UNNEST
in eine Tabelle konvertiert.
Diagramme mit MQL-Abfragen
Wenn Sie in einem Diagramm, für das eine MQL-Abfrage verwendet wird, eine labelbasierte Variable verwenden möchten, hängen Sie ein Pipe-Zeichen ((|)
) an und folgen Sie dann der Anleitung unter Allgemeine Syntax.
Wenn Sie die menügesteuerte Benutzeroberfläche verwenden, um ein Diagramm mit Zeitachsendaten zu erstellen, werden Ihre Auswahlmöglichkeiten in einen Monitoring-Filter umgewandelt.
Console
In der folgenden Abfrage wird beispielsweise eine labelbasierte Variable, my_label_based_variable
, in einen Filterausdruck aufgelöst:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | every 1m | ${my_label_based_variable}
Sie können die Abfrage auch so ändern, dass nur der Wert einer Variablen aufgelöst wird.
Im folgenden Beispiel wird ein regulärer Ausdruck verwendet, um den Wert einer labelbasierten Abfrage mit instance_id
zu vergleichen:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | filter resource.instance_id=~'${my_label_based_variable.value}' | group_by 1m, [value_utilization_mean: mean(value.utilization)] | every 1m
Wenn Sie eine Variable haben, die nur einen Wert enthält, lassen Sie die .value
-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und dazu eine Variable verwenden, die nur Werte enthält, würde die Abfrage etwa so aussehen:
resource.zone=~'${my_value_only_variable}'
API
Das folgende JSON-Beispiel zeigt eine Abfrage, bei der eine labelbasierte Variable (my_label_based_variable
) in einen Filterausdruck aufgelöst wird:
"timeSeriesQuery": { "timeSeriesQueryLanguage": "fetch gce_instance\n | metric 'compute.googleapis.com/instance/cpu/utilization'\n | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n | every 1m\n | ${my_label_based_variable}", "unitOverride": "", "outputFullDuration": false },
Sie können die Abfrage auch so ändern, dass nur der Wert einer Variablen aufgelöst wird.
Im folgenden Beispiel wird ein regulärer Ausdruck verwendet, um den Wert einer labelbasierten Abfrage mit instance_id
zu vergleichen:
"timeSeriesQuery": { "timeSeriesQueryLanguage": "fetch gce_instance\n | metric 'compute.googleapis.com/instance/cpu/utilization'\n | filter resource.instance_id=~'${my_label_based_variable.value}'\n | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n | every 1m\n", "unitOverride": "", "outputFullDuration": false },
Wenn Sie eine Variable haben, die nur einen Wert enthält, lassen Sie die .value
-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und dazu eine Variable verwenden, die nur Werte enthält, würde die Abfrage etwa so aussehen:
resource.zone=~'${my_value_only_variable}'
In der folgenden Tabelle sehen Sie, wie die Beispielvariablen von MQL aufgelöst werden. Wie bereits erwähnt, müssen Sie einen regulären Ausdruck als Vergleichsoperator verwenden, wenn nur der Wert einer Variablen verwendet wird:
Syntax | Ausgewählter Wert |
Aufgelöster MQL-Ausdruck |
---|---|---|
${my_label_based_variable} |
12345 |
filter (resource.instance_id == '12345')
Die Beispielvariable basiert auf dem Ressourcenlabel |
${my_label_based_variable} |
* |
filter (true) |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.* |
Diagramme mit Monitoring-Filterabfragen
Wenn Sie ein Diagramm mit einer Abfrage in Form eines Monitoring-Filters aktualisieren möchten, damit es von einer labelbasierten Variablen abhängt, folgen Sie der Anleitung unter Allgemeine Syntax.
Console
Wenn Sie die Google Cloud -Konsole zum Erstellen von Diagrammen verwenden und die menügesteuerte Oberfläche nutzen, können Sie die Abfrage des Diagramms über das Feld Auf Diagramme anwenden der Variablen aktualisieren. Alternativ können Sie das Widget bearbeiten und im Menü Filter eine labelbasierte Variable auswählen. Im Menü Filter werden alle labelbasierten Variablen und alle Labelschlüssel aufgeführt.
So aktualisieren Sie die Abfrage eines Diagramms, damit sie von einer wertbasierten Variablen abhängt:
- Das Diagramm bearbeiten.
- Klicken Sie im Bereich „Abfrage“ auf Filter hinzufügen und wählen Sie einen Labelschlüssel aus. Sie können beispielsweise Zone auswählen.
- Wählen Sie im Menü Wert die Variable aus, die nur Werte enthält.
- Klicken Sie auf Übernehmen.
- Klicken Sie zum Speichern des geänderten Dashboards in der Symbolleiste auf Speichern.
Das folgende JSON-Beispiel zeigt eine Abfrage, bei der eine labelbasierte Variable (my_label_based_variable
) in einen Filterausdruck aufgelöst wird:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" ${my_label_based_variable}"
Bei Widgets, für die eine Abfrage in Form eines Monitoring-Filters verwendet wird, kann die Zeitachse nicht nach dem Wert einer labelbasierten Variablen gefiltert werden. Sie können jedoch nach Variablen filtern, die nur Werte enthalten.
Die folgende Abfrage zeigt beispielsweise den Wert des Felds Filters einer Abfrage, die nach zone
filtert, basierend auf dem Wert einer Variable, die nur einen Wert enthält:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})
API
Das folgende JSON-Beispiel zeigt eine Abfrage, bei der eine labelbasierte Variable (my_label_based_variable
) in einen Filterausdruck aufgelöst wird:
"timeSeriesQuery": { "timeSeriesFilter": { "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" ${my_label_based_variable} ", "aggregation": { "alignmentPeriod": "60s", "perSeriesAligner": "ALIGN_MEAN", "groupByFields": [] } }, "unitOverride": "", "outputFullDuration": false },
Bei Widgets, für die eine Abfrage in Form eines Monitoring-Filters verwendet wird, kann die Zeitachse nicht nach dem Wert einer labelbasierten Variablen gefiltert werden. Sie können jedoch nach Variablen filtern, die nur Werte enthalten.
Die folgende Abfrage zeigt beispielsweise das Feld "filter"
einer Abfrage, die nach zone
gefiltert wird, basierend auf dem Wert einer Variable, die nur einen Wert enthält:
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" resource.labels.\"zone\"=monitoring.regex.full_match(${my_value_only_variable})"
In der folgenden Tabelle sehen Sie, wie die Beispielvariablen vom Monitoring-Filter aufgelöst werden. Wie bereits erwähnt, müssen Sie einen regulären Ausdruck als Vergleichsoperator verwenden, wenn nur der Wert einer Variablen verwendet wird:
Syntax | Ausgewählter Wert |
Aufgelöster Filterausdruck |
---|---|---|
${my_label_based_variable} |
12345 |
resource.instance_id == "12345"
Die Beispielvariable basiert auf dem Ressourcenlabel |
${my_label_based_variable} |
* |
Ausgelassen |
${my_label_based_variable.value} |
12345 |
Nicht unterstützt |
${my_label_based_variable.value} |
* |
Nicht unterstützt |
${my_value_based_variable} |
12345 |
"12345" |
${my_value_based_variable} |
* |
".*" |
Hinweise
Führen Sie die folgenden Schritte im Google Cloud -Projekt aus, in dem Sie Dashboards erstellen oder verwalten möchten:
-
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
- Führen Sie die Schritte unter Dashboard abrufen aus, um die Definition des ursprünglichen Dashboards herunterzuladen.
- Bearbeiten Sie das zurückgegebene JSON, um die Felder
etag
undname
zu entfernen und den Wert des FeldsdisplayName
zu ändern. - Führen Sie den Befehl aus, um das Dashboard zu erstellen.
- Installieren und konfigurieren Sie Terraform für Ihr Projekt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
Verwenden Sie die Terraform-Ressource
google_monitoring_dashboard
.Legen Sie im Befehl die folgenden Felder fest:
dashboard_json
: Die JSON-Darstellung des Dashboards im FormatDashboards
.Beispiele für dieses Format finden Sie entweder, indem Sie Ihre Dashboards mit dem APIs Explorer auflisten, oder indem Sie ein Dashboard in der Google Cloud -Konsole öffnen und sich die JSON-Darstellungen ansehen.
parent
: Der vollqualifizierte Name Ihres Projekts. Sie können dieses Feld beispielsweise auf"projects/PROJECT_ID"
festlegen, wobei PROJECT_ID die ID Ihres Google Cloud Projekts ist. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
- DASHBOARD_ID: Die ID des Dashboards.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.${DASHBOARD_ID}
: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert ist.- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
- DASHBOARD_ID: Die ID des Dashboards.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.${DASHBOARD_ID}
: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert ist.- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
- DASHBOARD_ID: Die ID des Dashboards.
- Installieren und konfigurieren Sie Terraform für Ihr Projekt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
Verwenden Sie die Terraform-Ressource
google_monitoring_dashboard
.Legen Sie im Befehl die folgenden Felder fest:
dashboard_json
: Die JSON-Darstellung des Dashboards im FormatDashboards
.parent
: Der vollqualifizierte Name Ihres Projekts. Sie können dieses Feld beispielsweise auf"projects/PROJECT_ID"
festlegen, wobei PROJECT_ID die ID Ihres Google Cloud Projekts ist. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
${PROJECT_ID}
: Eine Umgebungsvariable, in der die Projekt-ID gespeichert ist, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.${DASHBOARD_ID}
: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert ist.- Beispiele für Dashboards und Layouts
- Benutzerdefinierte Dashboards mit der Google Cloud Konsole erstellen und verwalten
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Dashboard erstellen
Zum Erstellen eines neuen benutzerdefinierten Dashboards rufen Sie dieMethode
dashboards.create
auf und geben das Layout und die Widgets zur Anzeige im Dashboard an.Das Feld
name
ist optional. Der Wert des Namensfelds hat die folgende Struktur:"name": "projects/PROJECT_ID_OR_NUMBER/dashboards/DASHBOARD_ID"
Wenn Sie ein Dashboard erstellen, generiert die API automatisch die Komponente DASHBOARD_ID. Wenn Sie eine benutzerdefinierte DASHBOARD_ID angeben möchten, können Sie das
name
-Feld desDashboard
-Objekts festlegen.gcloud
Verwenden Sie den Befehl
gcloud monitoring dashboards create
, um ein Dashboard in einem Projekt zu erstellen.gcloud monitoring dashboards create --config-from-file=my-dashboard.json --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Wenn Sie beispielsweise ein Dashboard duplizieren möchten, gehen Sie so vor:
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards create
.Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle. Weitere Informationen finden Sie in der Anbieterreferenzdokumentation zu Terraform.
So erstellen Sie ein Dashboard mit Terraform:
REST
Um ein neues Dashboard zu erstellen, senden Sie eine
POST
-Anfrage an den EndpunktDashboard
.curl -d @my-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X POST https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
In den Beispielen wird ein Beispiel-Dashboard mithilfe der Datei
my-dashboard.json
erstellt. Sie können Ihr Dashboard über dieGoogle Cloud -Konsole verwalten.Weitere Dashboard-Konfigurationen finden Sie unter Beispiele für Dashboards und Layouts.
Dashboards löschen
Um ein benutzerdefiniertes Dashboard zu löschen, rufen Sie die Methode
dashboards.delete
auf und geben Sie das zu löschende Dashboard an.gcloud
Verwenden Sie zum Löschen eines benutzerdefinierten Dashboards
gcloud monitoring dashboards delete
und geben Sie die vollständig qualifizierte ID des zu löschenden Dashboards an:gcloud monitoring dashboards delete DASHBOARD_ID --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards delete
.Terraform
Sie können Ressourcen mit Terraform löschen. Informationen zum Löschen von Ressourcen finden Sie im Terraform-Befehl destroy.
REST
Senden Sie zum Löschen eines benutzerdefinierten Dashboards eine
DELETE
-Anfrage an den EndpunktDashboard
, der mit der ID des zu löschenden Dashboards qualifiziert ist.curl -H "Authorization: Bearer $ACCESS_TOKEN" -X DELETE https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Bei Erfolg gibt die Methode eine leere Antwort zurück. Andernfalls wird ein Fehler zurückgegeben.
Dashboards auflisten
Zum Auflisten aller Dashboards, die zu einem Projekt gehören, rufen Sie die Methode
dashboards.list
auf und geben die Projekt-ID an.gcloud
Verwenden Sie den Befehl
gcloud monitoring dashboards list
, um alle benutzerdefinierten Dashboards eines Projekts aufzulisten:gcloud monitoring dashboards list --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards list
.Terraform
Sie können Terraform nicht verwenden, um eine Anfrage an Ihr Projekt zu senden, deren Antwort eine Liste von Dashboards ist. Sie können diese Dashboards jedoch über die Google Cloud Konsole aufrufen.
REST
Wenn Sie alle benutzerdefinierten Dashboards eines Projekts auflisten möchten, senden Sie die Projekt-ID an den Endpunkt
Dashboard
.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Die Beispiele geben die mit Ihrem Projekt verknüpften benutzerdefinierten Dashboards zurück.
Listenantwort paginieren
Die
dashboards.list
-Methode unterstützt die Paginierung, sodass Sie die Ergebnisse jeweils pro Seite statt alle gleichzeitig verarbeiten können.gcloud
Um die Anzahl der Ressourcen pro Seite anzugeben, übergeben Sie das Flag
--page-size
mit dem Befehl. Beispiel:gcloud monitoring dashboards list --page-size=1 --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Terraform
Sie können Terraform nicht verwenden, um eine Anfrage an Ihr Projekt zu senden, deren Antwort eine paginierte Liste von Dashboards ist. Sie können diese Dashboards jedoch über die Google Cloud Konsole aufrufen.
REST
Geben Sie für die erste Seite der Ergebnisliste den Suchparameter
pageSize
mit der Anfrage an:curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards?page_size=1
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Die Methode gibt die erste Seite der Liste und das
nextPageToken
zurück. Beispiel:{ "dashboards" : [ { "displayName" : "Grid Layout Example", "gridLayout" : { "widgets" : [ { ... }, { ... }, { ... }, ] } } ] }, "nextPageToken": "ChYqFDEyMzkzMzUwNzg0OTE1MDI4MjM3"
Für jede verbleibende Seite müssen Sie das entsprechende
nextPageToken
in der Anfrage angeben.Dashboard abrufen
Wenn Sie ein bestimmtes benutzerdefiniertes Dashboard für ein Projekt abrufen möchten, rufen Sie die Methode
dashboards.get
auf, die mit der Dashboard-ID qualifiziert ist.gcloud
Wenn Sie ein bestimmtes benutzerdefiniertes Dashboard abrufen möchten, verwenden Sie den Befehl
gcloud monitoring dashboards describe
und geben Sie die Dashboard-ID an:gcloud monitoring dashboards describe DASHBOARD_ID --format=json --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Der Befehl gibt das angeforderte Dashboard zurück:
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards describe
.Terraform
Sie können Terraform nicht verwenden, um eine Anfrage an Ihr Projekt zu senden, deren Antwort ein einzelnes Dashboard ist. Sie können diese Dashboards jedoch über die Google Cloud Konsole aufrufen.
REST
Wenn Sie ein bestimmtes benutzerdefiniertes Dashboard abrufen möchten, senden Sie die Dashboard-ID an den Endpunkt
Dashboard
.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Im vorherigen Ausdruck ist
${DASHBOARD_ID}
eine Umgebungsvariable, die den voll qualifizierten Namen des Dashboards speichert.Die Methode gibt eine Antwort in etwa wie im folgenden Beispiel zurück:
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }
Dashboard aktualisieren
Rufen Sie zum Aktualisieren eines vorhandenen benutzerdefinierten Dashboards die Methode
dashboards.patch
auf. Zum Abrufen des aktuellenetag
-Werts können Sie die Methodedashboards.get
aufrufen und ihn in der Antwort finden.gcloud
Verwenden Sie
gcloud monitoring dashboards update
zum Aktualisieren eines benutzerdefinierten Dashboards, geben Sie die ID des zu aktualisierenden Dashboards an und geben Sie die Änderungen im Dashboard an.gcloud monitoring dashboards update DASHBOARD_ID --config-from-file=my-updated-dashboard.json --project=PROJECT_ID
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards update
.Im vorherigen Beispiel wird ein vorhandenes benutzerdefiniertes Dashboard mithilfe der Datei
my-updated-dashboard.json
aktualisiert. Die Antwort, die einen neuenetag
-Wert enthält, ist eine Kopie des aktualisierten Dashboard-Eintrags.Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle. Weitere Informationen finden Sie in der Anbieterreferenzdokumentation zu Terraform.
So aktualisieren Sie ein Dashboard mit Terraform:
REST
Senden Sie zum Aktualisieren eines benutzerdefinierten Dashboards eine
PATCH
-Anfrage an den EndpunktDashboard
und geben Sie das überarbeiteteDashboard
-Objekt und denetag
-Wert aus der letztendashboards.get
-Antwort.curl -d @my-updated-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X PATCH https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Konfigurieren Sie vor dem Ausführen des vorherigen Befehls Folgendes:
Im vorherigen Beispiel wird ein vorhandenes benutzerdefiniertes Dashboard mithilfe der Datei
my-updated-dashboard.json
aktualisiert. Die Antwort, die einen neuenetag
-Wert enthält, ist eine Kopie des aktualisierten Dashboard-Eintrags.Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-14 (UTC).
-