谷歌警告说,v2 监控 API 现已弃用,很快就会消失。但是,事实证明迁移到 v3 有点困难。我正在尝试编写自定义指标并收到以下错误响应:
服务 > 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"
}
“资源”字段是必需的,文档说它是“MonitoredResource”......但我没有看到任何用于创建的 api,仅用于列出。大胆猜测并将其设置为“全局”似乎让我更进一步,并给了我这个不同的错误:
{
"error": {
"code": 400,
"message": "Field timeSeries[0].resource.labels[0] had an invalid value of \"payment_type\": Unrecognized resource label.",
"status": "INVALID_ARGUMENT"
}
}
列出指标描述符表明 payment_type 存在:
服务 > Google Monitoring 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"
}
我已经阅读了迁移指南和相关文档,但仍然受到阻碍。有人知道我在这里缺少什么吗?
更新:虽然看起来可以通过从 json 中删除“resource.labels”来使其工作,但我仍在寻找一种通过 java 客户端 api 使其工作的方法。
更新 2:接受的(自我回答的)问题显示了如何使用 java api 执行此操作。