我们需要一种可靠的方法来从堆栈驱动程序警报消息(发送到alerta webhook)中获取受监视资源的gcp项目ID(而不是堆栈驱动程序项目ID)。
我发现的一个可能的钥匙可能是:
"rawData": {
"incident": {
"resource_name": "squad-spielwiese test-ezander",
} }
我想100%安全地使用键resource_name的语法(似乎像resource's project name <blanc> resource name
),或者我的情况是否有更好的选择,所以我试图找到有关stackdriver alert消息键的任何文档-均未成功。
我不敢相信没有人记录关于stackdriver webhook警报消息中的单键含义的确切定义。有人可以帮我找到更多详细信息吗?
这是Alerta中的完整示例:
{
"attributes": {
"incidentId": "0.lbon2fb3ylfn",
"ip": "66.249.87.155",
"isOutOfHours": false,
"moreInfo": "<a href=\"https://app.google.stackdriver.com/incidents/0.lbon2fb3ylfn?project=squad-spielwiese\" target=\"_blank\">Stackdriver Console</a>",
"resourceId": "",
"runBookUrl": "http://www.example.com/wiki/RunBook/GCE-VM-Instance---CPU-utilization-for-4427379606643423981"
},
"correlate": [],
"createTime": "2019-08-29T12:25:54.000Z",
"customer": null,
"duplicateCount": 0,
"environment": "Production",
"event": "GCE VM Instance - CPU utilization for 4427379606643423981",
"group": "Cloud",
"history": [
{
"event": "GCE VM Instance - CPU utilization for 4427379606643423981",
"href": "https://127.0.0.1:9090/alerta-dev/api/alert/c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"id": "c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"severity": "ok",
"status": null,
"text": "OK: CPU utilization for squad-spielwiese test-ezander with metric labels {instance_name=test-ezander} returned to normal with a value of 0.001.",
"type": "severity",
"updateTime": "2019-08-29T12:25:50.000Z",
"value": "--"
},
{
"event": "GCE VM Instance - CPU utilization for 4427379606643423981",
"href": "https://127.0.0.1:9090/alerta-dev/api/alert/c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"id": "c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"severity": null,
"status": "closed",
"text": "new alert status change",
"type": "status",
"updateTime": "2019-08-29T12:25:50.000Z",
"value": null
},
{
"event": "GCE VM Instance - CPU utilization for 4427379606643423981",
"href": "https://127.0.0.1:9090/alerta-dev/api/alert/312fa29e-7c76-4e24-85f7-f3ecd09cc2f6",
"id": "312fa29e-7c76-4e24-85f7-f3ecd09cc2f6",
"severity": "critical",
"status": null,
"text": "CRITICAL: CPU utilization for squad-spielwiese test-ezander with metric labels {instance_name=test-ezander} is above the threshold of 0.2 with a value of 1.000.",
"type": "severity",
"updateTime": "2019-08-29T12:25:54.000Z",
"value": "--"
},
{
"event": "GCE VM Instance - CPU utilization for 4427379606643423981",
"href": "https://127.0.0.1:9090/alerta-dev/api/alert/312fa29e-7c76-4e24-85f7-f3ecd09cc2f6",
"id": "312fa29e-7c76-4e24-85f7-f3ecd09cc2f6",
"severity": null,
"status": "open",
"text": "correlated alert status change",
"type": "status",
"updateTime": "2019-08-29T12:25:54.000Z",
"value": null
}
],
"href": "https://127.0.0.1:9090/alerta-dev/api/alert/c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"id": "c5ae3e1c-53ad-42a3-b053-3321b3e96123",
"lastReceiveId": "312fa29e-7c76-4e24-85f7-f3ecd09cc2f6",
"lastReceiveTime": "2019-08-29T12:29:50.947Z",
"origin": "Stackdriver",
"previousSeverity": "ok",
"rawData": {
"incident": {
"condition_name": "GCE VM Instance - CPU utilization for 4427379606643423981",
"documentation": {
"content": "BLA ",
"mime_type": "text/markdown"
},
"ended_at": null,
"incident_id": "0.lbon2fb3ylfn",
"policy_name": "ez-policy",
"resource": {
"labels": {
"instance_id": "3269982608675192580",
"zone": "europe-west3-c"
},
"type": "gce_instance"
},
"resource_id": "",
"resource_name": "squad-spielwiese test-ezander",
"started_at": 1567081554,
"state": "open",
"summary": "CPU utilization for squad-spielwiese test-ezander with metric labels {instance_name=test-ezander} is above the threshold of 0.2 with a value of 1.000.",
"url": "https://app.google.stackdriver.com/incidents/0.lbon2fb3ylfn?project=squad-spielwiese"
},
"version": "1.2"
},
"receiveTime": "2019-08-29T12:29:50.947Z",
"repeat": false,
"resource": "squad-spielwiese test-ezander",
"service": [
"ez-policy"
],
"severity": "critical",
"status": "open",
"tags": [],
"text": "CRITICAL: CPU utilization for squad-spielwiese test-ezander with metric labels {instance_name=test-ezander} is above the threshold of 0.2 with a value of 1.000.",
"timeout": 86400,
"trendIndication": "moreSevere",
"type": "stackdriverAlert",
"value": "--"
}
答案 0 :(得分:0)
没有关于每个stackdriver响应键是什么的正式文档,但是在您的示例中,您可以通过仔细阅读响应字符串来识别VM实例和项目ID。
例如(“ resource”:“ squad-spielwiese test-ezander”)其中“ squad-spielwiese”代表您的项目ID,“ test-ezander”代表您的VM实例名称。 另外,您还可以查看URL密钥,该密钥始终会显示您的项目ID:“ url”:“ https://app.google.stackdriver.com/incidents/0.lbon2fb3ylfn?project= squad-spielwiese ”
在堆栈驱动程序中,由于“安全”原因,没有自然的方法来检索仅具有项目ID的键值,但是,您可以使用this API方法来解决该调用并将其实现到代码中。