`

Ganglia python扩展 - 配置文件说明

阅读更多
一、.pyconf配置说明
modules {
  module {
    name     = "example"     //指标名称,也是生成.rrd文件的文件名,此处跟.py文件名保持一致
    language = "python"
    enabled  = yes             //  取值yes或者no
 
    param RandomMax {
      value = 600
    }
    param ConstantValue {
      value = 112
    }
  }
}
 
collection_group {         //  只有配置collection_group,gmod才会去采集相关metric数据
  collect_every  = 10       //   采集间隔时间,单位:秒
  time_threshold = 50    //   发送全部collection_group数据的最长时间间隔,单位:秒
 
  metric {                                               //  定义采集哪些metric
    name = "PyRandom_Numbers"      //  与metric_init中定义的metric name保持一致
    title = "You metric name displayed on gweb"   // 定义在gweb界面上显示的名字,不填写时使用name定义
    value_threshold = 90         //  当超过此阀值时就会发送全部collection_group的数据,不管time_threshold时间是否到了
  }
}
 
man gmond.conf中有关于collection_group的更说细说明和用法:
 

collection_group
You can specify as many collection_group section as you like within the limitations of memory.  A collection_group has the following attributes: collect_once,
collect_every and time_threshold.  A collection_group must also contain one or more metric sections.
 
The metric section has the following attributes: (one of name or name_match; name_match is only permitted if pcre support is compiled in), value_threshold and title.
For a list of available metric names, run the following command:
 
% gmond -m
 
Here is an example of a collection group for a static metric...
 
collection_group {
collect_once   = yes
time_threshold = 1800
metric {
name = "cpu_num"
title = "Number of CPUs"
}
}
 
This collection_group entry would cause gmond to collect the cpu_num metric once at startup (since the number of CPUs will not change between reboots).  The metric
cpu_num would be send every 1/2 hour (1800 seconds).  The default value for the time_threshold is 3600 seconds if no time_threshold is specified.
 
The time_threshold is the maximum amount of time that can pass before gmond sends all metrics specified in the collection_group to all configured udp_send_channels.
A metric may be sent before this time_threshold is met if during collection the value surpasses the value_threshold (explained below).
 
Here is an example of a collection group for a volatile metric...
 
collection_group {
collect_every = 60
time_threshold = 300
metric {
name = "cpu_user"
value_threshold = 5.0
title = "CPU User"
}
metric {
name = "cpu_idle"
value_threshold = 10.0
title = "CPU Idle"
}
}
 
This collection group would collect the cpu_user and cpu_idle metrics every 60 seconds (specified in collect_every).  If cpu_user varies by 5.0% or cpu_idle varies
by 10.0%, then the entire collection_group is sent.  If no value_threshold is triggered within time_threshold seconds (in this case 300), the entire collection_group
is sent.
 
Each time the metric value is collected the new value is compared with the old value collected.  If the difference between the last value and the current value is
greater than the value_threshold, the entire collection group is send to the udp_send_channels defined.
 
It’s important to note that all metrics in a collection group are sent even when only a single value_threshold is surpassed.
 
In addition a user friendly title can be substituted for the metric name by including a title within the metric section.
 
By using the name_match parameter instead of name, it is possible to use a single definition to configure multiple metrics that match a regular expression.  The perl
compatible regular expression (pcre) syntax is used.  This approach is particularly useful for a series of metrics that may vary in number between reboots (e.g.
metric names that are generated for each individual NIC or CPU core).
 
Here is an example of using the name_match directive to enable the multicpu metrics:
 
metric {
name_match = "multicpu_([a-z]+)([0-9]+)"
value_threshold = 1.0
title = "CPU-\\2 \\1"
}
 
Note that in the example above, there are two matches: the alphabetical match matches the variations of the metric name (e.g. idle, system) while the numeric match
matches the CPU core number.  The second thing to note is the use of substitutions within the argument to title.
 
If both name and name_match are specified, then name is ignored.
 

二、metric_init中metric定义说明
metric_init函数中可以配置多个metric(每个metric都是一个字典),每个metric有十项配置,至少要配置前八项:
metric = {
'name': 'PyRandom_Numbers',
'call_back': Random_Numbers,
'time_max': 90,
'value_type': 'uint',
'units': 'N',
'slope': 'both',
'format': '%u',
'description': 'Example module metric (random numbers)',
'groups': 'example,random',
'extra_data':'extradata'
}
有两点需要说明:
1.   其中每一项的值都可以不配置,为空时fill_metric_info函数会赋给一个默认值。
2.   fill_metric_info函数不会判断extra data的key的全法性,因为key是自定义的,只会检查其 value 的合法性,不为string类型时打印错误。
分享到:
评论

相关推荐

    ganglia3.1.x下扩展python模块Thinkingincoding借鉴.pdf

    总的来说,通过Ganglia 3.1.x的Python扩展功能,用户可以更加便捷地监控特定的系统或应用指标,为管理和优化分布式环境提供了强大的工具。只需遵循上述步骤和注意事项,就能充分利用Ganglia的这一特性,实现个性化的...

    gmond_python_modules-master.zip

    2. 配置Ganglia的`gmond.conf`配置文件,指定新的Python模块路径。 3. 修改或添加插件配置,包括设置监控间隔、数据发送目标等。 4. 重启`gmond`服务以使更改生效。 5. 在Ganglia的web前端或者其他数据分析工具中...

    ganglia系统监控扩展

    总结来说,"ganglia系统监控扩展"提供了一种使用Python扩展Ganglia监控能力的方法,包括对Nginx和Varnish等特定服务的深入监控。通过这样的扩展,我们可以更细致地观察和管理我们的IT基础设施,及时发现并解决性能...

    ganglia配置修改脚本.rar_ganglia_linux

    在Linux系统中,Ganglia的主要配置文件通常位于/etc/ganglia目录下,包括gmond.conf(Ganglia Monitor Daemon的配置)和gmetad.conf(Ganglia Metadata Collector的配置)。这些文件定义了Ganglia如何运行、收集哪些...

    ganglia安装所需rpm包

    2. `python-iniparse-0.3.1-2.1.el6.noarch.rpm`:这是一个Python库,用于解析和操作INI格式的配置文件,如那些在Ganglia配置中常见的文件。它是YUM和其他依赖于Python处理配置文件的软件所必需的。 3. `yum-plugin...

    linux下ganglia安装包

    如果遇到问题,检查日志文件(如`/var/log/ganglia/*`),使用`netstat`或`tcpdump`检查网络通信,以及确保所有配置文件正确无误。 这个“linux下ganglia安装包”中的“iMonitor”可能是一个图形化的监控界面或...

    ganglia+依赖包

    5. **libxml2**: 这个库用于解析XML文件,Ganglia的配置文件和数据交换可能涉及XML格式。 6. **Python**: Ganglia的某些组件可能会使用Python,例如编译和安装过程中的一些脚本。 7. **Net-SNMP**: 如果需要监控...

    Hadoop 管理

    - **同步配置文件**:将Hadoop配置文件(例如`core-site.xml`, `hdfs-site.xml`等)复制到新节点上。 - **启动新的DataNode**:在新节点上启动Hadoop DataNode服务。 - **检查是否添加成功**:使用`hadoop ...

    pdsh集群管理

    这些模块可能实现了新的连接协议,目标主机过滤(如:从目标主机列表中移除 down 掉的主机),其他的选项(如 –a 从配置文件中选择所有的主机)。 pdsh 的发行版里包含一个并行远程拷贝工具(pdcp:并行的从本地...

    spark从节点搭建1

    - 在从节点的Spark配置文件`conf/spark-env.sh`中,设置以下关键参数: - `SPARK_MASTER`应指向Spark Master的地址(例如`spark://master_node_ip:7077`) - 根据需求调整`SPARK_WORKER_CORES`和`SPARK_WORKER_...

    2020级数据科学与大数据技术1班 Hbase的安装与部署-批阅.rar

    - **配置文件**:修改`conf/hbase-site.xml`,设置HBase的主节点地址、Zookeeper地址等。 - **依赖Hadoop**:确保HBase能连接到Hadoop集群,配置`hbase-env.sh`,设置Java路径和Hadoop相关环境变量。 - **启动与...

    安装Cluster Glue所需包

    9. **Perl/Python/Ruby Libraries**:根据Cluster Glue脚本和配置文件的需求,可能需要特定版本的Perl、Python或Ruby解释器及相关的库。 安装过程一般包括以下步骤: 1. 更新系统包列表和升级现有包。 2. 安装基础...

    spark-in-action

    它支持多种编程语言(如Scala、Java、Python等),并以其高效、灵活的特点著称。Spark能够处理静态数据批处理任务及实时数据流处理任务。 - **发展历程**:Spark起源于美国加州大学伯克利分校的AMPLab,最初是一个...

    gearmand-1.1.17.tar.gz

    此外,可以使用第三方工具如Ganglia、Prometheus或Grafana来监控gearmand的运行状态,确保系统的稳定性和效率。 ### 高可用性与扩展性 为了提高服务的可用性和扩展性,可以设置gearmand的集群模式。这通常通过负载...

    Hadoop 100道面试题及答案解析.pdf

    这个框架基于Google的MapReduce编程模型和分布式文件系统GFS的灵感,旨在提供高容错性和可扩展性,适用于大数据处理场景。以下是对Hadoop面试题及答案的部分解析: 1. **HDFS的数据存储**: - HDFS(Hadoop ...

    hadoop_linux.rar

    在Linux环境下安装Hadoop涉及多个步骤,包括配置Java环境、下载Hadoop源码或二进制包、配置环境变量、修改Hadoop配置文件(如core-site.xml、hdfs-site.xml、mapred-site.xml等)以及初始化HDFS和启动服务。...

    Laravel开发-laravel-gearman-rpc

    可以使用像Ganglia、Prometheus这样的监控工具,或者使用 Gearman 自带的管理命令行工具。 ** 结论 ** 通过集成 Laravel 和 Gearman,你可以创建一个强大的异步任务处理系统,提高应用程序的响应速度和并发处理...

    hadoop练习题--带答案.pdf

    1. Ganglia和Nagios:Ganglia专注于监控,而不提供告警功能;Nagios可以监控Hadoop集群,提供了扩展支持。 2. SecondaryNameNode:在NameNode意外宕机时,SecondaryNameNode并不能立即接管,而是作为辅助角色帮助...

    通过脚本判断实现Centreon报警通知.doc

    脚本,特别是批处理文件的延伸,是一种纯文本形式的程序,它由一系列控制计算机执行特定任务的指令组成,包括逻辑分支。在Centreon的上下文中,脚本被用来从Ganglia监控系统中抽取数据,并根据这些数据触发报警。 ...

    firefly:Firefly是一个Web应用程序,旨在为Web开发人员提供功能强大,灵活的时间序列图

    当前版本附带一个DataSource,该数据源读取RRD文件-特别是由Ganglia生成的文件。 但是,很容易扩展到其他来源,从内部关系数据库到跨网络API。 特征 折线图,堆叠图和面积图 使用任意数量的数据源配置图 配置图形...

Global site tag (gtag.js) - Google Analytics