每天进步一点点——Ganglia的Python扩展模块开发
转载请说明出处:http://blog.csdn.net/cywosp/article/details/39701245
同一时候具有非常好的扩展性。同意用户增加自己所要监控的状态信息。依据可视化的相关数据,非常easy知道集群的健康状态。而且也能够分析出集群的可优化的地方。
网络中的“ 抖动( Jitter ) ” 发生在大量小消息同一时候出现,通过ntp服务将节点的时钟保持一致,就能够避免这个问题。
以下使用Python开发一个简单的metric实例:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
import time
descriptors = list()
def random_number_1(name):
return int(random.uniform(5, 100)) + 10
def random_number_2(name):
return int(random.randrange(50, 500))
def metric_init(params):
global descriptors
random.seed()
print params
d1 = {
'name': 'random_number_1',
'call_back': random_number_1,
'time_max': 90,
'value_type': 'uint',
'units': 'C',
'slope': 'both',
'format': '%u',
'description': 'Random a number',
'groups': 'example random'
}
d2 = {
'name': 'random_number_2',
'call_back': random_number_2,
'time_max': 90,
'value_type': 'uint',
'units': 'C',
'slope': 'both',
'format': '%u',
'description': 'Random a number',
'groups': 'example random'
}
descriptors = [d1, d2]
return descriptors
def metric_cleanup():
pass #This code is for debugging and unit testing
if __name__ == '__main__':
metric_init({})
while True:
for d in descriptors:
v = d['call_back'](d['name'])
print ('value for %s is '+d['format']) % (d['name'], v)
time.sleep(5)
modules {module {#这里的name值一定要与/usr/lib64/ganglia/python_modules/random_number.py的文件名称保持一致,否则将无法正确执行name = "random_number"language = "python"}}
collection_group {collect_every = 2time_threshold = 90
metric {#这里的name值要与random_number.py中的d1里的name保持一致name = "random_number_1"title = "random number 1"value_threshold = 0}
metric {#这里的name值要与random_number.py中的d2里的name保持一致name = "random_number_2"title = "random number 2"value_threshold = 0}}
service gmond restartservice gmetad restartservice httpd restart
每天进步一点点——Ganglia的Python扩展模块开发的更多相关文章
- Windows下安装Python扩展模块提示Unable to find vcvarsall.bat的问题
本文内容 Unable to find vcvarsall.bat的问题描述 问题分析 总结 提示: 如果你只是想知道自己需要安装哪个版本的Visual Studio请直接查看本文最后一个小节的内容. ...
- Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题
本文内容 Unable to find vcvarsall.bat的问题描述 问题分析 总结 提示: 如果你只是想知道自己需要安装哪个版本的Visual Studio请直接查看本文最后一个小节的内容. ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- 使用 Python 开始游戏开发
使用 Python 开始游戏开发 这是一篇由教程团队成员Julian Meyer发表的文章,一个12岁的python开发人员.你可以在Google+和Twitter上找到他. 你可曾想过如何创建视频游 ...
- Java Web开发和Python Web开发之间的区别
今天的文章讨论了Java Web开发和Python Web开发之间的区别.我不鼓励我们在这里从Java Web迁移到Python Web开发.我只是想谈谈我的感受.它不一定适合所有情况,仅供我们参考. ...
- Python Web开发中的WSGI协议简介
在Python Web开发中,我们一般使用Flask.Django等web框架来开发应用程序,生产环境中将应用部署到Apache.Nginx等web服务器时,还需要uWSGI或者Gunicorn.一个 ...
- 《Python测试开发技术栈—巴哥职场进化记》—前言
写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
随机推荐
- Spring中与Spring相关的注解
# 一.Spring的常用组件类注解 ## @Component 被该注解所修饰的类是一个普通的spring bean类,该注解可以替代@Controller.@Service.@Reposi ...
- Problem D: 零起点学算法94——输出矩阵
#include<stdio.h> int main() { ][]; while(scanf("%d %d",&n,&m)!=EOF) { ; ;i& ...
- ES6 Set结构和Map结构(上)
Set ES6提供了新的数据结构--Set,它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身也是一个构造函数,用来生成Set数据结构 var s = new Set(); [2,3,5 ...
- sso 自动化运维平台
单点登录SSO(Single Sign-On)是身份管理中的一部分.本文中作者开发了一个自动化运维平台中的统一认证接口,单点登录平台通过提供统一的认证平台,实现单点登录.因此,应用系统并不需要开发用户 ...
- 五种算法实现IP到地址的转换
条件: 给出一个文件,其中每行一个IP段(IPv4,其实IPv6类似,只是规模剧增)及其对应的信息(例如物理地址信息),内容及格式为: <start_IP> <end_IP> ...
- html Frame、Iframe、Frameset 的区别 详细出处参考:http://www.jb51.net/web/22785.html
10.4.1 Frameset与Frame的区别首先讲解Frameset与Frame之间的区别. 用来划分框架,每一个框架由标记.必须在之内使用,代码如下: 在上面的例子当中,把页面分为左右两个部分, ...
- [转]How to handle Failed Rows in a Data Flow
本文转自:http://www.rad.pasfu.com/index.php?/archives/23-How-to-handle-Failed-Rows-in-a-Data-Flow.html s ...
- VLAN讲解
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网".VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术. ...
- Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G. 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间. ...
- WinForm客户端调用 WebService时 如何启用Session
WinForm客户端调用 WebService时 如何启用Session 摘自: http://www.cnblogs.com/swtseaman/archive/2011/04/18/2020176 ...