0

不确定这里是否有专业的 DataDog 用户,但我希望如此。

我创建了一个模板 DataDog 仪表板模板,该模板通过 docker 容器捕获主机的内存使用情况。

“主机名”出现在 5 个左右的地方:

{
  "viz": "timeseries",
  "status": "done",
  "requests": [
    {
      "q": "max:docker.mem.rss{host:are-P-swarmB-swarm-node-1} by {container_name}",
      "aggregator": "avg",
      "conditional_formats": [],
      "type": "area",
      "style": {
        "palette": "dog_classic"
      }
    },
    {
      "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1}",
      "conditional_formats": [],
      "type": "line",
      "style": {
        "palette": "warm",
        "type": "dashed",
        "width": "normal"
      }
    },
    {
      "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1} * 0.8",
      "conditional_formats": [],
      "type": "line",
      "style": {
        "palette": "orange",
        "type": "dashed",
        "width": "normal"
      }
    },
    {
      "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1} - max:system.mem.usable{host:are-P-swarmB-swarm-node-1}",
      "conditional_formats": [],
      "type": "line",
      "style": {
        "palette": "orange",
        "type": "dotted",
        "width": "thin"
      }
    }
  ],
  "autoscale": true,
  "yaxis": {
    "includeZero": false
  }
}

我现在正在尝试设置一个仪表板,为我的大约 20 个主机中的每一个显示此模板,但是克隆图表并在所有 5 个位置编辑主机名是一个痛苦的过程。每当我对模板进行更改时,我都必须痛苦地将更改粘贴到每个主机图表中,并在适用的地方更改主机名。

有没有办法可以设置这个模板(也许用一个变量代替主机名)并让仪表板自动为这个模板的每个主机创建一个图表?如果做不到这一点,有没有办法可以编写脚本?

谢谢你。

4

1 回答 1

2

好吧,您可以使用 Datadog API 编写脚本来创建 20 个独特的仪表板,这些仪表板都共享相同的内容,但使用不同的主机。这是 API 文档的一部分,对 Timeboards有帮助(带有示例!) ,而这个对 Screenboards有帮助。

也就是说,我个人会在我自己的 Datadog 帐户中发现 20 个仪表板有点杂乱/笨拙。相反,如果是我,我会尝试 (A) 巧妙地使用仪表板模板变量(例如集群标签、主机标签等),或者 (B) 按每个主机标签分组并应用“ top()"以某种方式起作用,这样我就可以看到最极端的主机。但这当然取决于你:)

于 2017-10-04T18:57:04.803 回答