Fork me on GitHub

startover's blog

5月 13, 2016

Cloudinsight Agent 与 Cacti 集成

原理介绍

Cloudinsight Agent 通过 python-rrdtool 读取 Cacti 生成的 rrd 文件(在 cacti 根目录的 rra 文件夹下),并将其中的数据解析后上传至 Cloudinsight 进行可视化。

Cacti 安装配置

由于 Cacti 安装配置较为繁琐,这里通过 Docker 容器的方式来解决这个问题。

然而,Cloudinsight Agent 需要读取 Cacti 生成的 rrd 文件,所以我们需要将这部分文件挂载到系统主机上。

  • 创建挂载文件
$ sudo mkdir -p /var/lib/cacti/rra
$ sudo wget -O /etc/mysql/mysqld.cnf ...

4月 28, 2016

Cloudinsight Agent 与 Nagios 集成

原理介绍

同大多数 Nagios 的可视化系统一样,Cloudinsight Agent 依赖于 Nagios 输出的指标数据,也即需要启用 Nagios 的性能数据处理功能(在 nagios.cfg 文件中,设置process_performance_data=1即可)。

Nagios 安装配置

由于 Nagios 安装配置较为繁琐,这里通过 Docker 容器的方式来解决这个问题。

然而,Cloudinsight Agent 需要读取 Nagios 的配置文件且依赖于 Nagios 输出的指标数据,所以我们需要将这部分文件挂载到系统主机上。

  • 创建 Nagios 配置文件
$ sudo mkdir -p /usr/local/nagios/data
$ sudo mkdir -p /usr/local ...

3月 15, 2016

Python Flask vs Ruby Sinatra vs Go Martini vs Node Express

题外话一
最近一段时间,Cloudinsight接连发布了三种语言(Python, Node, Ruby)的SDK,Cloudinsight Agent也迎来了重大突破,发布了Windows监控第一个版本,总算可以松口气写点东西了...

题外话二
偶然的机会看到一篇blog,文中详细介绍了Flask(Python), Sinatra(Ruby)以及Matini(Golang)这三类微型框架的用法,并提供了各个框架在Docker下的部署方式。然而,美中不足的是没有提供各个框架的性能对比情况,经过一番搜罗,发现了一篇对现今主流框架做性能对比的文章,找到两者的结合点,于是才有了今天这篇文章 :)



回归正题,之所以选择Flask(Python), Sinatra(Ruby), Matini(Golang)和Express(Node),主要是经验所限以及个人比较喜欢这类微型框架,下面我们就对各个框架在同等条件下的性能表现一探究竟。

本文源码地址:https://github.com ...

6月 06, 2015

【译】Python中如何创建mock?

原文地址:http://engineroom.trackmaven.com/blog/making-a-mockery-of-python/

今天我们来谈论下mock的使用。当然,请不要误会,这里的mock可不是嘲弄的意思。mock是一门技术,通过伪造部分实际代码,从而让我们能够验证剩余代码的正确性。现在我们将通过几个简单的示例演示mock在Python测试代码中的使用,以及这项极其有用的技术是如何帮助我们改善测试代码的。

为什么我们需要mock?

当我们进行单元测试的时候,我们的目标往往是为了测试非常小的代码块,例如一个独立存在的函数或类方法。换句话说,我们只需要针对那个函数内部的代码进行测试。如果测试代码依赖于其他的代码片段,即使被测试的函数没有变化,我们会发现在某种不幸的情形下,这部分内嵌代码的修改可能会破坏原有的测试。看看下面的例子,你将豁然开朗:

# function.py
def add_and_multiply(x, y):

    addition = x + y
    multiple = multiply(x, y)

    return (addition, multiple)


def multiply(x, y):

    return x ...

5月 18, 2015

【译】提高Python运行效率的六个窍门

原文地址:https://blog.newrelic.com/2015/01/21/python-performance-tips/

Python是一门优秀的语言,它能让你在短时间内通过极少量代码就能完成许多操作。不仅如此,它还轻松支持多任务处理,比如多进程。

不喜欢Python的人经常会吐嘈Python运行太慢。但是,事实并非如此。尝试以下六个窍门,来为你的Python应用提速。

窍门一:关键代码使用外部功能包

Python简化了许多编程任务,但是对于一些时间敏感的任务,它的表现经常不尽人意。使用C/C++或机器语言的外部功能包处理时间敏感任务,可以有效提高应用的运行效率。这些功能包往往依附于特定的平台,因此你要根据自己所用的平台选择合适的功能包。简而言之,这个窍门要你牺牲应用的可移植性以换取只有通过对底层主机的直接编程才能获得的运行效率。以下是一些你可以选择用来提升效率的功能包:

这些功能包的用处各有不同。比如说,使用C语言的数据类型,可以使涉及内存操作的任务更高效或者更直观。Pyrex就能帮助Python延展出这样的功能。Pylnline能使你在Python应用中直接使用C代码。内联代码是独立编译的,但是它把所有编译文件都保存在某处,并能充分利用C语言提供的高效率。

窍门二:在排序时使用键

Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间 ...

← Previous Next → Page 2 of 3