停用指标收集

本文档介绍了如何为 Google Cloud 项目停用 Cloud Monitoring API,以及如何阻止 Ops Agent 和旧版 Monitoring Agent 收集进程指标。 例如,在需要停用 Cloud Monitoring API 时, 防止将收费指标提取到 Google Cloud 项目中。

停用所有指标的收集

如需禁止收集所有指标,请停用 Cloud Monitoring API:

控制台

  1. 在 Google Cloud 控制台中,选择 Google Cloud 项目,然后转到 API 和服务页面:

    进入“API 和服务”

  2. 选择 Cloud Monitoring API

  3. 点击停用 API

gcloud

运行以下命令可在当前项目中停用 Cloud Monitoring API:

gcloud services disable monitoring.googleapis.com

如需了解如何使用 Google Cloud CLI 停用 API,请参阅启用和停用服务

停用进程指标收集

您可以通过多种方式对 Ops Agent(2.0.0 及更高版本)以及 Linux 上的旧版 Monitoring 代理停用对这些指标的收集功能。

这些代理仅在 Compute Engine 虚拟机上运行;对于 Monitoring 代理,则仅在 Amazon Elastic Compute Cloud (EC2) 虚拟机上运行;这些步骤仅适用于这些平台。

如果您运行的是版本低于 2.0.0 的 Ops Agent 或是在 Windows 上运行的旧版 Monitoring 代理,则无法停用收集功能。如果要在 Windows 上停用对这些指标的收集,我们建议您升级到 Ops Agent 2.0.0 或更高版本。如需了解详情,请参阅安装 Ops Agent

常规流程如下所示:

  1. 连接到虚拟机。

  2. 创建现有配置文件的副本作为备份。将备份副本存储在代理的配置目录之外,这样代理便不会尝试同时加载这两个文件。例如,以下命令会为 Linux 上的 Monitoring 代理创建配置文件的副本:

    cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
    
  3. 使用下述选项之一更改配置:

  4. 重启代理以选取新配置:

    • Monitoring 代理:sudo service stackdriver-agent restart
    • Ops Agent:sudo service google-cloud-ops-agent restart
  5. 验证系统不再收集此虚拟机的流程指标:

    1. 选择 Metrics Explorer

    2. 点击 MQL

    3. 对于 gce_instance 资源,输入以下查询,并将 VM_NAME 替换为此虚拟机的名称:

      fetch gce_instance
      | metric 'agent.googleapis.com/processes/cpu_time'
      | filter (metadata.system_labels.name == 'VM_NAME')
      | align rate(1m)
      | every 1m
      

      对于 aws_ec2_instance 资源,替换查询中的 gce_instance

    4. 点击运行查询

Linux 或 Windows 上的 Ops Agent

Ops Agent 配置文件的位置取决于操作系统:

  • 对于 Linux:/etc/google-cloud-ops-agent/config.yaml
  • 对于 Windows:C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

如需停用 Ops Agent 对所有进程指标的收集,请将以下内容添加到 config.yaml 文件中:

metrics:
  processors:
    metrics_filter:
      type: exclude_metrics
      metrics_pattern:
      - agent.googleapis.com/processes/*

这会在 metrics_filter 处理器中从应用于 metrics 服务中默认流水线的收集中排除进程指标。

如需详细了解 Ops Agent 的配置选项,请参阅配置 Ops Agent

Linux 上的 Monitoring 代理

您可以通过以下选项停用旧版 Monitoring 代理对进程指标的收集:

以下部分介绍了每个选项并列出了与该选项相关的优势和风险。

修改代理的配置文件

使用此选项,您直接修改代理的主配置文件 /etc/stackdriver/collectd.conf,以移除支持收集进程指标的部分。

过程

您需要对 collectd.conf 文件进行三组删除:

  1. 删除以下 LoadPlugin 指令和插件配置:

    LoadPlugin processes
    
    <Plugin "processes">
      ProcessMatch "all" ".*"
      Detail "ps_cputime"
      Detail "ps_disk_octets"
      Detail "ps_rss"
      Detail "ps_vm"
    </Plugin>
    
  2. 删除以下 PostCacheChain 指令和 PostCache 链的配置:

    PostCacheChain "PostCache"
    
    <Chain "PostCache">
      <Rule "processes">
        <Match "regex">
          Plugin "^processes$"
          Type "^(ps_cputime|disk_octets|ps_rss|ps_vm)$"
        </Match>
        <Target "jump">
          Chain "MaybeThrottleProcesses"
        </Target>
        Target "stop"
      </Rule>
    
      <Rule "otherwise">
        <Match "throttle_metadata_keys">
          OKToThrottle false
          HighWaterMark 5700000000  # 950M * 6
          LowWaterMark 4800000000  # 800M * 6
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
  3. 删除 PostCache 链使用的 MaybeThrottleProcesses 链:

    <Chain "MaybeThrottleProcesses">
      <Rule "default">
        <Match "throttle_metadata_keys">
          OKToThrottle true
          TrackedMetadata "processes:pid"
          TrackedMetadata "processes:command"
          TrackedMetadata "processes:command_line"
          TrackedMetadata "processes:owner"
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
优势和风险
  • 优势
    • 这样即可减少代理消耗的资源,因为系统永远不会收集指标。
    • 如果您对 collectd.conf 文件进行了其他更改,也许可以轻松保留这些更改。
  • 风险
    • 您必须使用 root 账号来修改此配置文件。
    • 文件中存在排版错误。

替换代理的配置文件

使用此选项,您可以将代理的主配置文件替换为预修改版本,并为您移除相关部分。

过程
  1. 将预修改的文件 collectd-no-process-metrics.conf 从 GitHub 代码库下载到 /tmp 目录,然后执行以下操作:

    cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
    
  2. 将现有的 collectd.conf 文件替换为预修改的文件:

    cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
    
优势和风险
  • 优势
    • 这样即可减少代理消耗的资源,因为系统永远不会收集指标。
    • 您无需手动将文件修改为 root
    • 配置管理工具可以轻松替换文件。
  • 风险
    • 如果您对 collectd.conf 文件进行了其他更改,则必须将这些更改合并到替换文件中。

问题排查

本文档中所述的过程是代理配置的更改,因此可能会出现下列问题:

  • 权限不足,无法修改配置文件。必须通过 root 账号修改配置文件。
  • 直接对配置文件中的排版错误引入直接修改。

如需了解如何解决其他问题,请参阅 Monitoring 代理问题排查

Windows 上的 Monitoring 代理

您无法停用在 Windows 虚拟机上运行的旧版 Monitoring 代理对进程指标的收集。此代理不可配置。如果要在 Windows 上停用对这些指标的收集,我们建议您升级到 Ops Agent 2.0.0 或更高版本。如需了解详情,请参阅安装 Ops Agent

如果您正在运行 Ops Agent,请参阅 Linux 或 Windows 上的 Ops Agent