Google hat gewarnt, dass die v2-Monitoring-API nun veraltet ist und bald außer Betrieb genommen wird. Die Migration auf v3 erweist sich jedoch als etwas schwierig. Ich versuche, eine benutzerdefinierte Metrik und bin immer folgende Fehlerreaktionen zu schreiben:Schreiben in benutzerdefinierte Zeitreihen mit Google Cloud Monitoring v3 api
Dienste> Google-Monitoring 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"
}
Die „Ressource“ ist erforderlich, und Dokumente sagen, es ist die "MonitoredResource" ... aber ich sehe keine API für die Erstellung eines, nur für die Auflistung. Eine wilde Vermutung und wenn er auf „global“ scheint mich ein bisschen weiter zu erhalten und gibt mir diese verschiedenen Fehler:
{
"error": {
"code": 400,
"message": "Field timeSeries[0].resource.labels[0] had an invalid value of \"payment_type\": Unrecognized resource label.",
"status": "INVALID_ARGUMENT"
}
}
die metrischen Deskriptoren Listing zeigt, dass payment_type existiert:
Dienste> Google Überwachungs-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"
}
ich habe durch die Migration Guides und zugehörige Dokumente gelesen, aber bin immer noch behindert. Weiß jemand, was ich hier vermisse?
Update: Während es so aussieht, als wäre es möglich, dies durch Entfernen von "resource.labels" aus dem JSON zu bekommen, suche ich immer noch nach einer Möglichkeit, dies über den Java Client API zu bekommen.
Update 2: Die angenommene (selbst beantwortete) Frage zeigt, wie man das mit der Java API macht.
Ich bin immer noch nicht klar, ob ich in diesem Fall die globale MonitoredResource verwenden sollte, aber es scheint keine API zu sein, um meine eigenen zu erstellen, und alle anderen existierenden erzeugen Fehler, wenn ich sie ausprobiere. Das Hinzufügen dieser Zeile in der for-Schleife in meiner anderen Antwort führt zu derselben Fehlerantwort: metric.set (labelName, value); – depsypher
Da Sie von v2 migrieren, ist | global | Der MonitoredResource-Typ ist die einfachste Migration. v2 hat nicht das Konzept von MonitoredResource, also sollte eine grundlegende Übersetzung nur global sein.Wenn Ihre Metrik einer Ressource in Ihrer virtualisierten Cloud-Umgebung entspricht, möchten Sie möglicherweise in Zukunft in einen anderen (nicht globalen) MonitoredResource-Typ schreiben. Es gibt keine API zum Erstellen einer MonitoredResource. Es gibt eine kuratierte Liste der MonitoredResource-Typen, die die API versteht. –
Wir haben uns die Fehlermeldung angesehen, die Sie angegeben haben. Der Java-Client sorgt dafür, dass der Rückgabewert von der API so verwendet wird, dass er weniger nützlich ist. Können Sie die Anfrage in Textform ausdrucken? Ich vermute immer noch, dass das Problem darin besteht, dass Ihr Java-Code metric.labels.payment_type nicht festlegt. –