配置在mesosphere DCOS上运行的prometheus mesos-exporter

时间:2015-08-10 07:05:07

标签: mesos mesosphere prometheus

我正在尝试在我的中间层DCOS群集上设置mesos导出器。我所指的链接是https://github.com/prometheus/mesos_exporter。我使用的JSON文件是:

    {
      "id": "/mesosexporter",
      "instances": 6,
      "cpus": 0.1,
      "mem": 25,
      "constraints": [["hostname", "UNIQUE"]],
      "acceptedResourceRoles": ["slave_public","*"],
      "container": {
            "type": "DOCKER",
            "docker": {
              "image": "prom/mesos-exporter",
              "network": "BRIDGE",
              "portMappings": [
                  {
                      "containerPort": 9105,
                      "hostPort": 9105,
                      "protocol": "tcp"
                  }
              ]
            }
          },
      "healthChecks": [{
          "protocol": "TCP",
          "gracePeriodSeconds": 600,
          "intervalSeconds": 30,
          "portIndex": 0,
          "timeoutSeconds": 10,
          "maxConsecutiveFailures": 2
      }]
    }

但只有暴露在普罗米修斯的米是'mesos_exporter_slave_scrape_errors_total'。梅索出口商向Promethues揭示的其他米是什么?来自mesos-exporter的github的自述文件说我们需要提供命令行标志,但如果我想将mesos exporter作为docker容器运行,我该如何指定配置?

编辑 - 仪表'mesos_exporter_slave_scrape_errors_total'给出非零值,表示在刮擦期间发生了错误。

编辑 - 添加'参数'原语后,我的JSON文件如下:

{
  "id": "/mesosexporter",
  "instances": 1,
  "cpus": 0.1,
  "mem": 25,
  "constraints": [["hostname", "UNIQUE"]],
  "acceptedResourceRoles": ["slave_public"],
  "container": {
        "type": "DOCKER",
        "docker": {
                   "image": "prom/mesos-exporter",
                   "network": "BRIDGE",
                   "portMappings": [
                                     {
                                       "containerPort": 9105,
                                       "hostPort": 9105,
                                       "protocol": "tcp"
                                     }
                                   ],
                   "privileged": true,
                   "parameters": [
                                     { "key": "-exporter.discovery", "value": "true" },
                                     { "key": "-exporter.discovery.master-url",
                                       "value": "http://mymasterDNS.amazonaws.com:5050" }
                                 ]
                 }
  },
  "healthChecks": [{
      "protocol": "TCP",
      "gracePeriodSeconds": 600,
      "intervalSeconds": 30,
      "portIndex": 0,
      "timeoutSeconds": 10,
      "maxConsecutiveFailures": 2
  }]
}

Mesos版本:0.22.1

马拉松版:0.8.2-SNAPSHOT

使用此JSON后,应用程序仍处于“部署”状态

2 个答案:

答案 0 :(得分:2)

  

但只有暴露在普罗米修斯的米才是' mesos_exporter_slave_scrape_errors_total'。梅索出口商向Promethues揭示的其他米是什么?

如果mesos-exporter正在侦听端口9100,您可以检查 http://<hostname>:9100/metrics 以了解正在公开的指标。我指的是我在其中一个系统上设置的prom/node-exporter

  

但如果我想将mesos导出器作为docker容器运行,我应该如何指定配置?

我假设您将此JSON文件发布到Marathon REST API以启动Docker容器。如果确实如此,您可以使用parameters JSON指令指定其他选项。有关详情,请参阅{{3>} 特权模式和任意Docker选项部分。

希望有所帮助!

答案 1 :(得分:2)

使用args原语解决了这个问题。等效的docker命令是 docker run -p 9105:9105 prom / mesos-exporter -exporter.discovery = true -exporter.discovery.master-url =&#34; mymasternodeDNS:5050&#34; -log.level =调试 作为参数&quot; exporter.discovery&#39;,&#39; exporter.discovery.master-url&#39;和&#39; log.level&#39;是用于图像输入点而不是用于#dock; run&#39;,#39; args&#39;必须使用。

&#39; args&#39;的格式在工作JSON中添加的是:

   "args": [
      "-exporter.discovery=true",
      "-exporter.discovery.master-url=http://mymasternodeDNS:5050",
      "-log.level=debug"]