小编rvs*_*rvs的帖子

MongoDB:如何从API获取db.stats()

我试图在我的python代码中获取db.stats()mongo shell命令的结果(用于监视目的).

但与例如serverStatus不同,我无法做到db.command('stats').我无法在mongodb文档中找到任何API等价物.我也尝试了各种变化,db.$cmd但没有一个有效.

所以,

小问题:如何db.stats()在我的python代码中获得(连接/对象的数量,数据和索引的大小等)的结果?

更大的问题:任何人都可以解释为什么一些shell命令可以从API轻松访问,而其他人不是?这非常烦人:一些管理员相关的工具可以通过db.$cmd.sys,一些通过db.command,一些通过...?这种情况有一些标准或解释吗?

PS:mongodb 2.0.2,pymongo 2.1.0,python 2.7

python mongodb pymongo

5
推荐指数
1
解决办法
4366
查看次数

Python fastcgi客户端

我正在python上编写一个工具来监控fastcgi应用程序.fastcgi我唯一需要的是加载ping和状态页面(如果失败则返回某种错误).

有很多库(从python-fasctgi绑定到扭曲)似乎能够做到这一点,但是大多数库对于我的目的来说简直太过分了,而且其中许多都会让我产生额外的依赖性,导致一些包装问题.

那么,是否有任何简单的python fastcgi 客户端实现/库,易于安装/打包(转rpm)或小到足以随项目分发.

更新:

感谢agf,我已经能够连接到fastcgi app并发送一些请求.它只不过是标准的php-fpm.但我无法得到任何位置的响应:我正试图从'/ ping',它应该响应200 OK和'pong'在体内.对于我的任何要求,所有我得到的是200 OK响应,空身.

我正在以这种方式提出要求:

def _load_page(self, url):
    """ load fastcgi page """
    fcgi = fcgi_client.FCGIApp(host = self.fcgi_host, port = self.fcgi_port)
    env = {
           'SCRIPT_FILENAME': url,
           'QUERY_STRING': url,
           'REQUEST_METHOD': 'GET',
           'SCRIPT_NAME': url,
           'REQUEST_URI': url,
           'GATEWAY_INTERFACE': 'CGI/1.1',
           'SERVER_SOFTWARE': 'ztc',
           'REDIRECT_STATUS': '200',
           'CONTENT_TYPE': '',
           'CONTENT_LENGTH': '0',
           'DOCUMENT_URI': url,
           'DOCUMENT_ROOT': '/',
           #'SERVER_PROTOCOL' : ???
           'REMOTE_ADDR': '127.0.0.1',
           'REMOTE_PORT': '123',
           'SERVER_ADDR': self.fcgi_host,
           'SERVER_PORT': str(self.fcgi_port),
           'SERVER_NAME': self.fcgi_host
           }
    ret = fcgi(env)
    print ret
Run Code Online (Sandbox Code Playgroud)

我还必须在stdin处理中修改flup客户端:

# Transfer wsgi.input …
Run Code Online (Sandbox Code Playgroud)

python client fastcgi

4
推荐指数
1
解决办法
3793
查看次数

Python的通用测试自动化框架

我是一名系统管理员/基础设施工程师,有时我会浪费时间检查基础设施发生变化后是否一切正常.我想写一些测试,例如:

  • 从网站下载一些CSS/JavaScript代码
  • 登录网站
  • 上传一些文件并尝试下载
  • 登录服务器并执行一些脚本
  • 等等.

大多数单元测试框架都侧重于单元测试和代码覆盖,但我需要的只是一个可配置的运行器,用于我的测试,报告很好,可能是用于编写HTTP测试的附加模块.使用此工具进行压力测试的可能性将是一个优势.

我发现了许多名字(testoob,functest,robotframework,py.test等),但我不知道该选择什么.

python testing automated-tests frameworks

3
推荐指数
1
解决办法
4004
查看次数

Jython jmxmp协议支持

我正在为zabbix开发监控脚本和模板的集合.它被称为ZTC,所有脚本都在python上.

现在我想添加一些java监控的支持.我没有找到从CPython中做到这一点的方法 - 仅限于java或jython.由于所有项目都在python上,我决定在jython上编写一个简单的脚本,它将从我的cpython类中调用.

以下是我的代码的样子:

#!/usr/bin/env jython

#Java Dependencies
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.lang.management.ManagementFactory;

#Python Dependencies
import sys, cmd, socket

def usage():
    print """Usage:
    jmxclient.py -h
    jmxclient.py <connect_url> <jmx_attribute_path> <jmx_property>"""

class JMXClient:
    remote = None

    def connect(self, connect_url):
        if self.remote:
            return True

        #Establish Connection to JMX Server
        url = javax.management.remote.JMXServiceURL(connect_url);
        connector = javax.management.remote.JMXConnectorFactory.connect(url);
        self.remote = connector.getMBeanServerConnection();

    def getAttribute(self, mbean_path, attribute):
        """Query the mbean server for a specific attribute and return the
        result"""
        obn …
Run Code Online (Sandbox Code Playgroud)

java jmx jython

2
推荐指数
1
解决办法
2286
查看次数