如何将自定义指标从收集的(堆栈驱动器代理)发送到堆栈驱动器

时间:2018-09-20 07:41:41

标签: stackdriver collectd

我无法将数据发送到strackdriver。这是简单的例子。 我使用的是我在收集的示例中找到的语法。 Stackdriver文档没有有关如何从exec模块发送自定义数据的信息。 我在做什么错了?

这是collect.conf

public class ExampleAdapter extends BaseAdapter {
    ...
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView.findViewById(R.id.ac_education);
        v.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Your code here
            }
        });
    }
    ...
}

这是dir.sh

LoadPlugin exec
<Plugin "exec">
    Exec "apache" "/etc/stackdriver/collectd.d/dir.sh"
</Plugin>

脚本输出

#!/bin/bash
FOLDER="/var/www/"
while true; do
  DU=$(du -shm ${FOLDER} | awk '{print $1}')
  echo "PUTVAL \"projects/project_name/custom.googleapis.com/folder/completesolar\" interval=60 N:${DU}"
  sleep 60
done

我启用了调试模式并发现此错误:

$/etc/stackdriver/collectd.d/dir.sh
PUTVAL "projects/project_name/custom.googleapis.com/folder/completesolar" interval:60 N:1155

我创建了这个指标,并在stackdriver控制台中找到了它: http://joxi.ru/a2XlPGvi1VzJL2

这是用于创建指标的json:

[2018-09-21 00:45:55] utils_cmd_putval: handle_putval (fh = 0x3e71d8f040, buffer = PUTVAL "projects/project_name/custom.googleapis.com/folder/completesolar" interval=60 N:1155);
[2018-09-21 00:45:55] No such dataset registered: custom.googleapis.com/folder/completesolar

2 个答案:

答案 0 :(得分:0)

好像您正在遵循this guide来提取执行指标。我认为重写规则不起作用,因此该度量最终通过常规代理度量路径被摄取,该路径拒绝了无法识别的度量。您可能需要使用过滤器链modify the metadata来获取指标。我建议您重新访问troubleshooting guide

答案 1 :(得分:0)

这应该可行。

/etc/stackdriver/collectd.d/dir.conf

LoadPlugin exec
<Plugin "exec">
    Exec "apache" "/path/to/dir.sh"
</Plugin>

LoadPlugin target_set
PreCacheChain "PreCache"
<Chain "PreCache">
  <Rule "dir">
    <Match regex>
      Plugin "^exec$"
      PluginInstance "^dir$"
    </Match>
    <Target "set">
      MetaData "stackdriver_metric_type" "custom.googleapis.com/folder/completesolar"
      # MetaData "stackdriver_metric_type" "custom.googleapis.com/%{plugin_instance}/%{type_instance}"
      # MetaData "label:name" "dir usage"
    </Target>
  </Rule>
</Chain>

/path/to/dir.sh

#!/bin/bash
INTERVAL="$COLLECTD_INTERVAL"
HOSTNAME="$COLLECTD_HOSTNAME"
FOLDER="/var/www/"

while true; do
  DU=$(du -sm ${FOLDER} | awk '{print $1}')

  # https://collectd.org/documentation/manpages/collectd-exec.5.shtml
  # PUTVAL Identifier [OptionList] Valuelist
  # Identifier: <host>/<plugin>-<plugin_instance>/<type>-<type_instance>
  # Type: See /opt/stackdriver/collectd/share/collectd/types.db
  echo "PUTVAL ${HOSTNAME}/exec-dir/gauge-usage/ interval=${INTERVAL} N:${DU}"
  sleep "${INTERVAL}"
done

如果要(预先)创建或删除指标,请参见下文。
https://cloud.google.com/monitoring/custom-metrics/creating-metrics