Google ha avvertito che l'API di monitoraggio v2 è ora deprecata e andrà via presto. Tuttavia, la migrazione a v3 si sta rivelando un po 'difficile. Sto cercando di scrivere una metrica personalizzata e sto ottenendo i seguenti risposte di errore:Scrittura in tempi personalizzati con Google Cloud Monitoring v3 api
Servizi> Google Monitoraggio API v3> monitoring.projects.timeSeries.create
{
"timeSeries": [{
"metric": {
"type": "custom.googleapis.com/test_metric",
"labels": {
"payment_type": "Paypal"
}
},
"resource": {
"type": "custom.googleapis.com/test_metric",
"labels": {
"payment_type": "Paypal"
}
},
"metricKind": "GAUGE",
"valueType": "INT64",
"points": [{
"interval": {
"endTime": "2016-03-20T15:01:23.045123456Z",
"startTime": "2016-03-20T15:01:23.045123456Z"
},
"value": {
"int64Value": "2"
}
}]
}]
}
{
"error": {
"code": 400,
"message": "Field timeSeries[0].resource.type had an invalid value of \"custom.googleapis.com/test_metric\": Unrecognized resource name.",
"status": "INVALID_ARGUMENT"
}
Il campo "risorsa" è richiesto, e i documenti dicono che è "MonitoredResource" ... ma non vedo alcuna API per crearne una, solo per la quotazione. Prendendo un ipotesi e impostarla a "globale" sembra avere un po 'più di me e mi dà questo errore diverso:
{
"error": {
"code": 400,
"message": "Field timeSeries[0].resource.labels[0] had an invalid value of \"payment_type\": Unrecognized resource label.",
"status": "INVALID_ARGUMENT"
}
}
Listing i descrittori metriche mostra che payment_type esiste:
Servizi> Google Monitoraggio API v3> monitoring.projects.metricDescriptors.list
{
"name": "projects/gearlaunch-hub-sandbox/metricDescriptors/custom.googleapis.com/test_metric",
"labels": [
{
"key": "payment_type"
}
],
"metricKind": "GAUGE",
"valueType": "INT64",
"description": "Test",
"type": "custom.googleapis.com/test_metric"
}
ho letto attraverso le guide alla migrazione e documenti correlati, ma sono ancora ostacolati. Qualcuno sa cosa mi manca qui?
Aggiornamento: Mentre sembra possibile farlo funzionare rimuovendo "resource.labels" da JSON, sto ancora cercando un modo per farlo funzionare tramite l'API del client Java.
Aggiornamento 2: La domanda accettata (risposta automatica) mostra come eseguire questa operazione con java api.
Non sono ancora chiaro se dovrei utilizzare MonitoredResource globale in questo caso, ma non sembra esserci un'API per crearne una mia e tutte le altre esistenti producono errori quando li provo. L'aggiunta di questa linea all'interno del ciclo for nell'altra risposta genera la stessa risposta di errore: metric.set (labelName, value); – depsypher
Poiché si sta migrando da v2, il | global | Il tipo MonitoredResource è la migrazione più semplice. v2 non ha il concetto di MonitoredResource, quindi una traduzione di base dovrebbe essere solo globale.Se la tua metrica corrisponde a una risorsa nel tuo ambiente cloud virtualizzato, potresti voler scrivere su un altro tipo di MonitoredResource (non globale) in futuro. Non ci sono API per la creazione di MonitoredResource; c'è una lista curata di tipi MonitoredResource che l'API comprende. –
Abbiamo esaminato il messaggio di errore che hai fornito. Il client Java sta correggendo il valore restituito dall'API in un modo che lo rende meno utile. Puoi stampare la richiesta in forma di testo? Ho ancora il sospetto che il problema è che il tuo codice Java non sta impostando metric.labels.payment_type. –