Open timburks opened 1 year ago
This gets a high-level description of a service:
$ curl https://servicemanagement.googleapis.com/v1/services/hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog -H "Authorization: Bearer `gcloud auth print-access-token`"
{
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog",
"producerProjectId": "timburks-test"
}
This gets the service configurations:
curl https://servicemanagement.googleapis.com/v1/services/hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog/configs -H "Authorization: Bearer `gcloud auth print-access-token`"
...
{
"name": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog",
"title": "Hello API",
"documentation": {
"summary": "Sample API on API Gateway with a Google Cloud Functions backend"
},
"usage": {},
"metrics": [
{
"name": "serviceruntime.googleapis.com/api/consumer/request_count",
"labels": [
{
"key": "/credential_id"
},
{
"key": "/protocol"
},
{
"key": "/response_code"
},
{
"key": "/response_code_class"
},
{
"key": "/status_code"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/consumer/total_latencies",
"labels": [
{
"key": "/credential_id"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/producer/request_count",
"labels": [
{
"key": "/protocol"
},
{
"key": "/response_code"
},
{
"key": "/response_code_class"
},
{
"key": "/status_code"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/producer/total_latencies"
},
{
"name": "serviceruntime.googleapis.com/api/consumer/quota_used_count",
"labels": [
{
"key": "/credential_id"
},
{
"key": "/quota_group_name"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/consumer/request_sizes",
"labels": [
{
"key": "/credential_id"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/consumer/response_sizes",
"labels": [
{
"key": "/credential_id"
}
]
},
{
"name": "serviceruntime.googleapis.com/api/producer/request_overhead_latencies"
},
{
"name": "serviceruntime.googleapis.com/api/producer/backend_latencies"
},
{
"name": "serviceruntime.googleapis.com/api/producer/request_sizes"
},
{
"name": "serviceruntime.googleapis.com/api/producer/response_sizes"
}
],
"monitoredResources": [
{
"type": "api",
"labels": [
{
"key": "cloud.googleapis.com/location"
},
{
"key": "cloud.googleapis.com/uid"
},
{
"key": "serviceruntime.googleapis.com/api_version"
},
{
"key": "serviceruntime.googleapis.com/api_method"
},
{
"key": "serviceruntime.googleapis.com/consumer_project"
},
{
"key": "cloud.googleapis.com/project"
},
{
"key": "cloud.googleapis.com/service"
}
]
}
],
"monitoring": {
"consumerDestinations": [
{
"monitoredResource": "api",
"metrics": [
"serviceruntime.googleapis.com/api/consumer/request_count",
"serviceruntime.googleapis.com/api/consumer/quota_used_count",
"serviceruntime.googleapis.com/api/consumer/total_latencies",
"serviceruntime.googleapis.com/api/consumer/request_sizes",
"serviceruntime.googleapis.com/api/consumer/response_sizes"
]
}
]
},
"id": "hello-2f8ts0sbxtpig"
}
...
rollouts:
$ curl https://servicemanagement.googleapis.com/v1/services/hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog/rollouts -H "Authorization: Bearer `gcloud auth print-access-token`"
{
"rollouts": [
{
"rolloutId": "2022-08-19r0",
"createTime": "2022-08-19T03:52:21.036Z",
"createdBy": "service-659507087217@gcp-sa-apigateway-mgmt.iam.gserviceaccount.com",
"status": "SUCCESS",
"trafficPercentStrategy": {
"percentages": {
"hello5-0lhnlcwseyqro": 100
}
},
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog"
},
{
"rolloutId": "2022-08-18r0",
"createTime": "2022-08-18T23:47:37.757Z",
"createdBy": "service-659507087217@gcp-sa-apigateway-mgmt.iam.gserviceaccount.com",
"status": "SUCCESS",
"trafficPercentStrategy": {
"percentages": {
"hello4-0p68fyurn0bdw": 100
}
},
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog"
},
{
"rolloutId": "2022-08-12r2",
"createTime": "2022-08-12T22:13:27.748Z",
"createdBy": "service-659507087217@gcp-sa-apigateway-mgmt.iam.gserviceaccount.com",
"status": "SUCCESS",
"trafficPercentStrategy": {
"percentages": {
"hello3-0ke4tee1dkbaf": 100
}
},
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog"
},
{
"rolloutId": "2022-08-12r1",
"createTime": "2022-08-12T21:53:16.256Z",
"createdBy": "service-659507087217@gcp-sa-apigateway-mgmt.iam.gserviceaccount.com",
"status": "SUCCESS",
"trafficPercentStrategy": {
"percentages": {
"hello2-2zv5ghdtyg9ls": 100
}
},
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog"
},
{
"rolloutId": "2022-08-12r0",
"createTime": "2022-08-12T21:08:37.209Z",
"createdBy": "service-659507087217@gcp-sa-apigateway-mgmt.iam.gserviceaccount.com",
"status": "SUCCESS",
"trafficPercentStrategy": {
"percentages": {
"hello-2f8ts0sbxtpig": 100
}
},
"serviceName": "hello-1uw9r3za60r8p.apigateway.timburks-test.cloud.goog"
}
]
}
Our first effort to import from API Gateway imports each gateway as an API and includes a deployment and spec (if the spec is available). This uses the
gateway
andapi-config
resources. These are also associated with a top-levelapi
resource, which is fairly sparse:I think it would be useful to import each of these as API resources and link them to their associated gateways, but if this is all the information we have, there's not much to put in those new API resources. I'm curious to see what's in the
managedService
records but haven't looked up how to get those from the Service Management (?) API.