跳转到主要内容

分析数据库连接使用情况

项目描述

一个类似“top”的工具,可以监控多个进程和服务器之间的数据库连接。初始用途是跟踪Openstack使用的大量Python进程和数据库连接,然而该系统可以与任何SQLAlchemy应用程序一起工作。

设置

首先,使用pip安装connmon。

Connmon有一个配置文件,默认位置在/etc/connmon.cfg。一个简单的文件看起来像

# sample config, listen on 0.0.0.0:5800 and clients
# will connect to 192.168.1.205:5800
[connmon_service_default]
name: default

nodes:
    node1 hostname=192.168.1.205:5800

该文件由connmon守护进程以及所有客户端连接咨询,以确定守护进程在哪些位置运行。

如果只在单个主机上测试,可以使用没有配置文件的connmon;如果文件不存在,则使用以下类似默认配置

# default config if no /etc/connmon.cfg and no
# --config <file> option is passed
[connmon_service_default]
name: default

nodes:
    node1 hostname=localhost:5800 bind=0.0.0.0

然后,可以启动connmon守护进程

connmond

该守护进程监听客户端,客户端会向它提供它们使用的连接数量信息。它在内存中存储此状态,然后可以报告。如果守护进程停止或对客户端不可用,每个客户端都会本地跟踪其状态,并继续尝试重新连接到守护进程。当它这样做时,它将守护进程的状态更新到其连接状态。

要配置统计客户端,connmon为SQLAlchemy引擎提供了一个插件。为了在数据库通信的应用程序中启用插件的用法,请使用以下URL

mysql+pymysql_connmon://root:sa@127.0.0.1/neutron?charset=utf8&connmon_service=default

在SQLAlchemy 1.1中,我们将添加一些更便携的方式来将“插件”与数据库URL捆绑在一起,上述URL将变得更加简单。

最后,我们可以使用控制台查看当前连接

connmon

然后启动使用数据库的应用程序。所有配置了配置文件的都将建立到“192.168.1.205:5800”控制台的TCP连接。

请查看包含的screenshot.png截图。

无需配置连接

URL也可以指定特定的主机/端口

mysql+pymysql_connmon://root:sa@127.0.0.1/neutron?charset=utf8&connmon_addr=192.168.1.205:5800

配置HA集群

可以将多个节点配置为每个节点运行connmon listen,从而形成一个集群;在每个节点上启动服务器,使用connmond --node <节点名>

[connmon_service_default]
name: default

nodes:
    node1 hostname=192.168.1.205:5800
    node2 hostname=192.168.1.206:5800
    node3 hostname=192.168.1.207:5800

在上面的模型中,所有节点相互联系并共享所有事件。在没有节点名的情况下连接到“默认”服务名将导致客户端连接到云中的任意节点。它将尝试每个节点,直到找到可以连接的节点。

与Devstack一起使用

以下是向devstack设置中添加connmon的魔法咒语。首先全局安装connmon。然后在local.conf中(注意双斜杠转义)

[[post-config|$NOVA_CONF]]

[database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/nova?charset=utf8\\&connmon_service=default

[api_database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/nova_api?charset=utf8\\&connmon_service=default

[[post-config|$NEUTRON_CONF]]

[database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/neutron?charset=utf8\\&connmon_service=default

[[post-config|$KEYSTONE_CONF]]

[database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/keystone?charset=utf8\\&connmon_service=default


[[post-config|$CINDER_CONF]]

[database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/cinder?charset=utf8\\&connmon_service=default

[[post-config|$GLANCE_API_CONF]]

[database]
connection = mysql+pymysql_connmon://root:sa@127.0.0.1/glance?charset=utf8\\&connmon_service=default

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

connmon-0.3.6.tar.gz (14.6 kB 查看哈希)

上传时间

由支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面