Mit der Ressource Dashboard in der Cloud Monitoring API können Sie benutzerdefinierte Dashboards und ihre Widgets programmatisch in großem Umfang erstellen und verwalten. Sie können benutzerdefinierte Dashboards mit der Google Cloud CLI, Terraform oder REST-Aufrufen an die Methoden create, list, get, patch und delete verwalten.
Vordefinierte Dashboards können nicht über die API abgerufen, bearbeitet oder gelöscht werden. Informationen zum Erstellen und Verwalten benutzerdefinierter Dashboards mit der Google Cloud Console finden Sie unter Benutzerdefinierte Dashboards erstellen und verwalten.
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 auf dem Dashboard 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 mehrere Arten von Widget-Objekten:
XyChart-Widget: Zeigt Daten auf der X- und Y-Achse an.In diesem Widget wird ein Dataset angezeigt, das Zeitreihendaten enthalten oder durch eine SQL-Abfrage generiert werden kann. Mit diesem Widget können Sie die im Diagramm dargestellten Daten entweder der linken oder der rechten Y-Achse zuordnen. Wenn mehrere Messwerttypen in einem Diagramm dargestellt werden, können Sie beide Y-Achsen verwenden. Das Widget
XyChartunterstützt die folgenden Darstellungsstile:- Liniendiagramme
- Balkendiagramme
- Gestapelte Flächendiagramme
- Heatmaps
Sie können den Zeitraum für
XyChart-Widgets angeben. Diese Einstellung überschreibt die Einstellung auf Dashboard-Ebene. Konfigurieren Sie die Überschreibung des Zeitraums eines Diagramms, wenn Sie möchten, dass in diesem Diagramm Daten über einen längeren oder kürzeren Zeitraum angezeigt werden, als es für andere Dashboard-Widgets angemessen ist. Ein Beispiel finden Sie unter Dashboard mit einemXyChart-Widget, das eine Zeitraumüberschreibung festlegt.Widgets, die eine Dimension anzeigen, z. B. den letzten Wert:
PieChart: Zeigt die neuesten Werte einer Sammlung von Zeitreihen an, wobei jede Zeitreihe ein Segment des Kreisdiagramms darstellt.Scorecard: Zeigt den neuesten Wert einer Zeitreihe und die Beziehung dieses Werts zu einem oder mehreren Grenzwerten an.TimeSeriesTable: Zeigt den neuesten Wert oder einen aggregierten Wert für jede Zeitreihe an. Tabellen können angepasst werden. Sie können beispielsweise Zellen farblich kennzeichnen und Spaltennamen und Datenausrichtung konfigurieren.
Widgets, die Informationen zu Benachrichtigungsrichtlinien oder Benachrichtigungen anzeigen:
AlertChart: Zeigt eine Zusammenfassung einer Benachrichtigungsrichtlinie mit einer einzelnen Bedingung an. In diesem Widget werden Daten als Liniendiagramm angezeigt, der Schwellenwert wird dargestellt und die Anzahl der offenen Benachrichtigungen wird aufgelistet.IncidentList: Zeigt eine Liste der Benachrichtigungen an. Sie können das Widget so konfigurieren, dass Benachrichtigungen für bestimmte Benachrichtigungsrichtlinien oder für bestimmte Ressourcentypen angezeigt werden.
Widgets, die Logeinträge und Fehler anzeigen:
ErrorReportingPanel: Zeigt Fehlergruppen an, die im ausgewähltenGoogle Cloud -Projekt gespeichert sind.LogsPanel: Zeigt projektspezifische Logeinträge 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.
Widgets, die Trace-Daten anzeigen:
XyChart-Widget: Zeigt Daten auf der X- und Y-Achse an.TimeSeriesTable: Zeigt den neuesten Wert oder einen aggregierten Wert an. Tabellen können angepasst werden.
Text- und Organisations-Widgets:
CollapsibleGroup: Zeigt eine Sammlung von Widgets an. 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 in Ihrem Dashboard und einen Eintrag im Inhaltsverzeichnis des Dashboards.Text: Zeigt Textinhalte entweder als Rohtext oder als Markdown-String an.
Wenn Sie Text- und Organisations-Widgets in ein Dashboard einfügen möchten, muss das Dashboard einen
MosaicLayouthaben.
Zusätzlich zu diesen Objekten können Sie auch einen leeren Platzhalter zu einem Dashboard hinzufügen.
Im Folgenden sehen Sie beispielsweise die JSON-Darstellung eines XyChart-Widgets, 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 ein Label mit dem Namen prod hinzufügen, um anzugeben, dass auf dem 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 enthält, die Ihnen bei der Fehlerbehebung helfen.
Das Hinzufügen von Labels zu einem Dashboard ist optional.
Im Folgenden wird beispielsweise ein Dashboard-Objekt gezeigt, das das Label playbook angibt.
{
"displayName": "Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
...
]
},
"dashboardFilters": [],
"labels": {
"playbook": ""
}
}
Wie im vorherigen Beispiel gezeigt, wird das Feld labels als map implementiert, wobei die Felder key und value Strings sind. Wenn Sie einem Dashboard ein Label hinzufügen, setzen Sie key auf den Namen des Labels und das Feld value auf einen leeren String.
Dashboard-Filter und -Variablen
Beim Entwerfen eines Dashboards können Sie mehrere Möglichkeiten zum Anzeigen der Daten auf dem Dashboard ermitteln. Angenommen, ein Dashboard zeigt Zeitreihendaten für Ihre VM-Instanzen an. Sie können die Zeitreihendaten für alle VMs oder nur die Daten in einer bestimmten Zone aufrufen. In diesem Fall empfehlen wir, einen angepinnten Filter oder eine Variable zu erstellen und dann den Standardwert dieses Filters auf die am häufigsten aufgerufene Zone festzulegen.
Angepinnte Filter gelten für alle Dashboard-Widgets, die das im Filter angegebene Label unterstützen, es sei denn, das Widget enthält einen Filter mit demselben Labelschlüssel.
Wenn ein Diagramm beispielsweise den Filter zone = us-central1-a enthält, wird ein angepinnter Filter mit dem Labelschlüssel zone ignoriert. Ebenso wird dieser Filter von Diagrammen ignoriert, die kein Label mit dem Schlüssel zone haben.
Variablen sind wie angepinnte Filter, gelten aber nur für bestimmte Widgets. Variablen können auf Labels basieren oder nur einen Wert haben.
Wertvariablen enthalten einen oder mehrere Standardwerte und eine Liste aller möglichen Werte. Wenn Sie keinen Standardwert angeben, wird der Standardwert auf den Platzhalteroperator (*) gesetzt. Um die Menge aller möglichen Werte zu definieren, geben Sie entweder ein Array von Werten an oder schreiben eine SQL-Abfrage.
Wenn Sie einen angepinnten Filter oder eine angepinnte Variable erstellen, wird die Symbolleiste Ihres benutzerdefinierten Dashboards in Monitoring aktualisiert, um einen Filter anzuzeigen.
Bei angepinnten Filtern ist der Name des Filters in der Symbolleiste der Name des angepinnten Filters. Bei Variablen ist der Name des Symbolleistenfilters ein Dollarzeichen $, gefolgt vom Namen der Variable. Jeder Symbolleistenfilter enthält ein Menü, über das Sie den Wert des zugehörigen angepinnten Filters oder der zugehörigen angepinnten Variable ändern können.
Bei Variablen können Sie den Filter in der Symbolleiste durch ein Dashboard-Widget ersetzen. Weitere Informationen finden Sie unter Dashboard mit einem FilterControl-Widget.
Bei Widgets, die Daten abfragen, können Sie eine Variable in die Abfrage des Widgets einfügen und eine Variable verwenden, um die Sichtbarkeit des Widgets zu steuern. Wenn die Abfrage von einer Variablen abhängt, ändern sich die vom Widget angeforderten Daten, wenn Sie den Wert der Variablen ändern. Dadurch ändern sich auch die angezeigten Daten. Wenn Sie die Sichtbarkeit eines Widgets mit einer Variablen steuern, wird in der Symbolleiste das Symbol visibility Sichtbar angezeigt. Informationen zu Einschränkungen im Zusammenhang mit der Sichtbarkeit finden Sie unter Sichtbarkeit eines Widgets festlegen.
Die gleiche Datenstruktur wird verwendet, um angepinnte Filter und Variablen darzustellen.
Weitere Informationen finden Sie unter DashboardFilter.
Ein Beispiel dafür, wie Sie die Sichtbarkeit eines Widgets mithilfe einer Variablen steuern können, finden Sie unter Dashboard mit konfigurierter Widget-Sichtbarkeit.
Informationen zum Aktualisieren der Abfrage eines Widgets mit einer labelbasierten Variablen oder einer Variablen, die nur Werte enthält, finden Sie in den folgenden Abschnitten:
- Allgemeine Syntax zum Dereferenzieren einer Variablen
- Widgets im Bereich „Logs“
- Diagramme mit PromQL-Abfragen
- Diagramme mit SQL-Abfragen
Diagramme mit Monitoring-Filterabfragen
Wenn Sie die menübasierte Oberfläche verwenden, um ein Diagramm mit Zeitreihendaten zu erstellen, werden Ihre Auswahlen 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:
REST
Verwenden Sie zum Definieren angepinnter Filter und Variablen die Datenstruktur dashboardFilters.
- Legen Sie zum Erstellen einer Variable den Wert des Felds
templateVariableauf 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
labelKeyangeben. Lassen Sie dieses Feld weg, wenn Sie eine Variable nur mit Wert verwenden 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ü der Werte oder mehrere Werte auswählen kann.
Wenn Sie einen einzelnen Standardwert festlegen und Nutzer auf die Auswahl von genau einer Option im Wertemenü beschränken möchten, legen Sie das Feld
valueTypeaufSTRINGfest und legen Sie auch das FeldstringValuefest:"valueType": "STRING", "stringValue": "my-default-value",Wenn Sie mindestens einen Standardwert festlegen und Nutzern die Möglichkeit geben möchten, mehrere Optionen im Menü „Werte“ auszuwählen, legen Sie das Feld
valueTypeaufSTRING_ARRAYfest und legen Sie auch das FeldstringArrayValuefest. Im folgenden Beispiel gibt es drei Standardwerte."valueType": "STRING_ARRAY", "stringArrayValue": { "values": [ "a", "b", "c" ] },Optional: Wenn Sie die Liste aller möglichen Werte für eine reine Wertvariable angeben möchten, legen Sie entweder das Feld
stringArrayoder das FeldtimeSeriesQueryfest. 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. In den FeldernvalueTypeundstringValuewird der einzelne Standardwert angegeben. Weitere Informationen finden Sie auf der Seite mit den API-Referenzen für die DatenstrukturdashboardFilters.Die labelbasierte Variable hat den Namen
my_label_based_variableund der Labelschlüssel istinstance_id. Der Standardwert für diese Variable ist auf eine bestimmte Instanz-ID festgelegt. Sie können den Standardwert auch mithilfe eines Arrays konfigurieren. In der Symbolleiste wird der Filter mit dem Namenmy_label_based_variableangezeigt.Die Variable, die nur den Wert enthält, heißt
my_value_only_variable. In diesem Eintrag wird kein Standardwert angegeben, daher wird der Platzhalteroperator(*)automatisch 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.
Beachten Sie, dass im dashboardFilters-Objekt die Widgets, für die die Variable gilt, nicht aufgeführt sind. Stattdessen aktualisieren Sie die Abfrage eines Widgets so, dass sie von einer Variablen abhängt.
Allgemeine Syntax zum Dereferenzieren einer Variablen
Verwenden Sie für alle Widgets, mit Ausnahme derer, die durch SQL definiert sind, die folgende Syntax, um eine Variable auf eine Abfrage anzuwenden:
Wenn Sie eine labelbasierte Variable anwenden und den Labelschlüssel und den Labelwert in einen gültigen Filterausdruck für die Abfragesprache auflösen möchten, verwenden Sie
${my_label_based_variable}.Wenn Sie nur den Wert einer labelbasierten Variable 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 Nur-Wert-Variable anwenden möchten, verwenden Sie
${my_value_only_variable}. Fügen Sie für Variablen, die nur Werte enthalten, keine.value-Klausel ein. Für den Vergleich muss ein regulärer Ausdruck verwendet werden.
Widgets im Logbereich
Wenn Sie eine Variable auf ein Widget im Logbereich anwenden möchten, aktualisieren Sie den Abfragebereich. 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}"
Ein weiteres Beispiel ist eine reine Wertvariable, value_only_severity_variable. Angenommen, im Menü der Werte sind drei Werte ausgewählt: ERROR, INFO und NOTICE.
Als Nächstes fügen Sie dem Abfragebereich des Logbereich-Widgets Folgendes hinzu:
severity =~ "${value_only_severity_variable}"
Im Folgenden wird das gerenderte Formular dargestellt:
severity =~ "^(ERROR|INFO|NOTICE)$"
REST
Das folgende JSON-Beispiel zeigt, wie die Abfrage eines Logfeld-Widgets mit einer labelbasierten Variablen aktualisiert wird:
"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 ist eine reine Wertvariable, value_only_severity_variable. Angenommen, im Menü sind drei Werte ausgewählt: ERROR, INFO und NOTICE.
Als Nächstes fügen Sie dem Abfragebereich des Logbereich-Widgets Folgendes hinzu:
"logsPanel": {
"filter": "severity =~ \"${value_only_severity_variable}\"\n",
...
}
Im Folgenden wird die Abfrage dargestellt, die vom Widget im Logbereich ausgeführt wird:
severity =~ "^(ERROR|INFO|NOTICE)$"
Wenn Sie eine Abfrage für den Logbereich konfiguriert haben und dann den Button 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 im Logbereich |
|---|---|---|
${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 nur mit einem Wert haben, lassen Sie die .value-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und eine Variable nur mit Wert verwenden, würde die Abfrage in etwa so aussehen:
zone=~"${my_value_only_variable}"
REST
Die folgende JSON-Datei zeigt beispielsweise eine Abfrage, die auf der labelbasierten Variable my_label_based_variable basiert, die 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 nur mit einem Wert haben, lassen Sie die .value-Klausel weg. Wenn Sie beispielsweise nach Zone filtern möchten und eine Variable nur mit Wert verwenden, würde die Abfrage in etwa so aussehen:
zone=~\"${my_value_only_variable}\"
In der folgenden Tabelle wird 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
Es gibt zwei Stellen, an denen Sie Variablen in Ihren SQL-Abfragen verwenden können:
Die
FROM-Klausel kann von der systemdefinierten Variable@__project_idabhängen, die in den Wert des ausgewählten Projekts aufgelöst wird.Die
WHERE-Klausel kann von benutzerdefinierten Variablen abhängen.
FROM-Klausel aktualisieren, damit sie von einer systemdefinierten Variable abhängt
Wenn Sie Dashboard-Vorlagen erstellen und diese Vorlagen die Ergebnisse von SQL-Abfragen darstellen, ersetzen Sie die Projekt-ID in Ihrer Abfrage durch die Variable @__project_id. Wenn Sie die Vorlage in einem Projekt installieren, wird die Variable automatisch in die Projekt-ID aufgelöst. Sie müssen das Widget nicht manuell bearbeiten und die FROM-Klausel aktualisieren.
Im Folgenden wird eine FROM-Klausel dargestellt, die von der systemdefinierten Variable abhängt:
FROM `@__project_id.global._Default._Default`
Die FROM-Klausel darf nicht von benutzerdefinierten Variablen abhängen.
WHERE-Klausel so aktualisieren, dass sie von einer benutzerdefinierten Variable abhängt
In diesem Abschnitt wird beschrieben, wie Sie die WHERE-Klausel eines SQL-definierten Widgets so aktualisieren, dass sie von einer benutzerdefinierten Variable abhängt.
Stellen Sie allen Variablen das @-Zeichen voran, 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 Variablenersetzung auf BigQuery und ist vor SQL-Injections geschützt. Weitere Informationen finden Sie unter Parametrisierte Abfragen ausführen.
Console
Da SQL den Platzhalteroperator nicht als „beliebiger Wert“ interpretiert, empfehlen wir, immer eine IF-Anweisung zu verwenden, wenn Sie Variablen in einer SQL-Abfrage verwenden. Das folgende Beispiel zeigt die Verwendung einer Nur-Wert-Variable, 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 Variable 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 SQL den Platzhalteroperator nicht als „beliebiger Wert“ interpretiert.
Wenn Sie also die IF-Anweisung weglassen und den Platzhalteroperator auswählen, ist das Ergebnis der Abfrage 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. - Prüfen Sie im Dialogfeld, das sich öffnet, den generierten Code 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 Lognamen generiert und das Ergebnis in einer Tabelle mit einer einzelnen Spalte namenslog_nameausgibt. Als Nächstes erstellen Sie ein Diagramm, wählen Variablenfilter einfügen und dann die VariableLogNameaus. 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 Übernehmen.
Klicken Sie zum Speichern des geänderten Dashboards in der Symbolleiste auf Speichern.
REST
Da SQL den Platzhalteroperator nicht als „beliebiger Wert“ interpretiert, empfehlen wir, immer eine IF-Anweisung zu verwenden, wenn Sie Variablen in einer SQL-Abfrage verwenden. Das folgende Beispiel zeigt die Verwendung einer Nur-Wert-Variable, 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 mit dem Namen 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 gibt auch eine Abfrage aus, um die Liste der möglichen Lognamen 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 Variable 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 SQL den Platzhalteroperator nicht als „beliebiger Wert“ interpretiert.
Wenn Sie also die IF-Anweisung weglassen und den Platzhalteroperator auswählen, ist das Ergebnis der Abfrage eine leere Tabelle. Im zweiten Beispiel wird das Array mit der Funktion UNNEST in eine Tabelle konvertiert.
Diagramme mit Monitoring-Filterabfragen
Wenn Sie ein Diagramm mit einer Abfrage in Form eines Monitoring-Filters so aktualisieren möchten, dass es von einer labelbasierten Variablen abhängt, folgen Sie der Anleitung unter Allgemeine Syntax.
Console
Wenn Sie die Google Cloud Console zum Erstellen Ihrer Diagramme und die menügesteuerte Oberfläche verwenden, können Sie die Abfrage des Diagramms über das Feld Auf Diagramme anwenden der Variablen aktualisieren oder das Widget bearbeiten und die labelbasierte Variable im Menü Filter 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 Variable abhängt:
- Das Diagramm bearbeiten.
- Klicken Sie im Abfragebereich 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 nur mit Wert aus.
- Klicken Sie auf Übernehmen.
- Klicken Sie zum Speichern des geänderten Dashboards in der Symbolleiste auf Speichern.
Die folgende JSON-Datei zeigt beispielsweise eine Abfrage, die auf einer labelbasierten Variablen (my_label_based_variable) basiert, die in einen Filterausdruck aufgelöst wird:
metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance" ${my_label_based_variable}"
Widgets, die eine Abfrage in Form eines Monitoring-Filters verwenden, können die Zeitreihe nicht nach dem Wert in einer labelbasierten Variablen filtern. Sie können jedoch nach Variablen filtern, die nur Werte enthalten.
Die folgende Abfrage zeigt beispielsweise den Wert des Felds Filter einer Abfrage, die nach zone filtert, basierend auf dem Wert einer Nur-Wert-Variablen:
metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance"
resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})
REST
Die folgende JSON-Datei zeigt beispielsweise eine Abfrage, die auf einer labelbasierten Variablen (my_label_based_variable) basiert, die 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
},
Widgets, die eine Abfrage in Form eines Monitoring-Filters verwenden, können die Zeitreihe nicht nach dem Wert in einer labelbasierten Variablen filtern. Sie können jedoch nach Variablen filtern, die nur Werte enthalten.
Die folgende Abfrage zeigt beispielsweise das Feld "filter" einer Abfrage, die nach zone filtert, basierend auf dem Wert einer Nur-Wert-Variablen:
"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 wird veranschaulicht, 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} |
* |
Auslassung |
${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} |
* |
".*" |
Hinweis
Führen Sie die folgenden Schritte im Google Cloud -Projekt aus, in dem Sie Dashboards erstellen oder verwalten möchten:
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
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 Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Authentifizierungsdaten für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, ist dies nicht erforderlich.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
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 Felds name 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 einen benutzerdefinierten DASHBOARD_ID angeben möchten, können Sie das Feld name des Dashboard-Objekts angeben.
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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
Wenn Sie beispielsweise ein Dashboard duplizieren möchten, gehen Sie so vor:
- Führen Sie die Schritte unter Dashboard abrufen aus, um die Definition des ursprünglichen Dashboards herunterzuladen.
- Bearbeiten Sie die zurückgegebene JSON-Datei, um die Felder
etagundnamezu entfernen, und ändern Sie den Wert des FeldsdisplayName. - Führen Sie den Befehl aus, um das Dashboard zu erstellen.
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 Referenzdokumentation für Terraform-Anbieter.
So erstellen Sie ein Dashboard mit Terraform:
- Installieren und konfigurieren Sie Terraform für Ihr Projekt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
Verwenden Sie die Terraform-Ressource
google_monitoring_dashboard.Legen Sie im Befehl die folgenden Felder fest:
dashboard_json: Die JSON-Darstellung des Dashboards imDashboard-Format.Beispiele für dieses Format finden Sie, wenn Sie Ihre Dashboards mit dem APIs Explorer auflisten oder ein Dashboard in der Google Cloud Console öffnen und die JSON-Darstellung aufrufen.
parent: Der vollständig qualifizierte Name Ihres Projekts. Sie können dieses Feld beispielsweise auf"projects/PROJECT_ID"festlegen, wobei PROJECT_ID die ID Ihres Projekts in Google Cloud ist. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
REST
Um ein neues Dashboard zu erstellen, senden Sie eine POST-Anfrage an den Endpunkt Dashboard.
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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
In den Beispielen wird ein Beispiel-Dashboard mithilfe der Datei my-dashboard.json erstellt.
Sie können Ihr Dashboard über dieGoogle Cloud Console verwalten.
Weitere Dashboard-Konfigurationen finden Sie unter Beispiel-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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
- DASHBOARD_ID: Die ID des Dashboards.
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 Endpunkt Dashboard, 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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.${DASHBOARD_ID}: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert wird.
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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
Weitere Informationen finden Sie in der Referenz zu gcloud monitoring dashboards list.
Terraform
Sie können Terraform nicht verwenden, um eine Abfrage an Ihr Projekt zu senden, deren Antwort eine Liste von Dashboards ist. Sie können diese Dashboards jedoch über die Google Cloud Console 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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
Terraform
Sie können Terraform nicht verwenden, um eine Abfrage an Ihr Projekt zu senden, deren Antwort eine paginierte Liste von Dashboards ist. Sie können diese Dashboards jedoch über die Google Cloud Console 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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
- DASHBOARD_ID: Die ID des Dashboards.
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 Abfrage an Ihr Projekt zu senden, deren Antwort ein einzelnes Dashboard ist. Sie können diese Dashboards jedoch über die Google Cloud Console 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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.${DASHBOARD_ID}: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert wird.
Im vorherigen Ausdruck ist ${DASHBOARD_ID} eine Umgebungsvariable, in der der vollständig qualifizierte Name des Dashboards gespeichert ist.
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 aktuellen etag-Werts können Sie die Methode dashboards.get aufrufen und ihn in der Antwort finden.
gcloud
Wenn Sie ein benutzerdefiniertes Dashboard aktualisieren möchten, verwenden Sie gcloud monitoring dashboards update, geben Sie die ID des zu aktualisierenden Dashboards an und nehmen Sie die Änderungen am Dashboard vor.
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:
- PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
- DASHBOARD_ID: Die ID des Dashboards.
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 neuen etag-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 Referenzdokumentation für Terraform-Anbieter.
So aktualisieren Sie ein Dashboard mit Terraform:
- Installieren und konfigurieren Sie Terraform für Ihr Projekt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
Verwenden Sie die Terraform-Ressource
google_monitoring_dashboard.Legen Sie im Befehl die folgenden Felder fest:
dashboard_json: Die JSON-Darstellung des Dashboards imDashboard-Format.parent: Der vollständig qualifizierte Name Ihres Projekts. Sie können dieses Feld beispielsweise auf"projects/PROJECT_ID"festlegen, wobei PROJECT_ID die ID Ihres Projekts in Google Cloud ist. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.
REST
Senden Sie zum Aktualisieren eines benutzerdefinierten Dashboards eine PATCH-Anfrage an den Endpunkt Dashboard und geben Sie das überarbeitete Dashboard-Objekt und den etag-Wert aus der letzten dashboards.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:
${PROJECT_ID}: Eine Umgebungsvariable, in der die Projekt-ID gespeichert wird, in der das Dashboard erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt aus.${DASHBOARD_ID}: Eine Umgebungsvariable, in der die ID des Dashboards gespeichert wird.
Im vorherigen Beispiel wird ein vorhandenes benutzerdefiniertes Dashboard mithilfe der Datei my-updated-dashboard.json aktualisiert. Die Antwort, die einen neuen etag-Wert enthält, ist eine Kopie des aktualisierten Dashboard-Eintrags.
Nächste Schritte
- Beispiele für Dashboards und Layouts
- Benutzerdefinierte Dashboards mit der Google Cloud Console erstellen und verwalten
- Tags verwenden, um den Zugriff auf Dashboards zu steuern