mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Merge pull request #155 from iborodikhin/master
New plugin for SphinxSearch
This commit is contained in:
commit
1fc33ee6b9
68
plugins/sphinx/sphindex_
Executable file
68
plugins/sphinx/sphindex_
Executable file
@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: set fileencoding=utf-8
|
||||
#
|
||||
# Munin plugin to show number of documents in Sphinx index
|
||||
#
|
||||
# Copyright Igor Borodikhin
|
||||
#
|
||||
# License : GPLv3
|
||||
#
|
||||
# parsed environment variables:
|
||||
# server: hostname or ip-address of Sphinx server
|
||||
# port: port number of Sphinx server
|
||||
#
|
||||
# This plugin shows graphs of numbers of documents in Sphinxsearch indexes.
|
||||
#
|
||||
# ## Requirements
|
||||
# This plugin requires pythons sphinxsearch module which can be installed via easy_install.
|
||||
#
|
||||
# ## Installation
|
||||
# Copy file to directory /usr/share/munin/pligins/ and create symbolic links for each index you wish to monitor.
|
||||
# For example, if you've got indexes called index1 and index2 create these symlinks:
|
||||
#
|
||||
# ln -s /usr/share/munin/plugins/sphindex_ /etc/munin/plugins/sphindex_index1
|
||||
# ln -s /usr/share/munin/plugins/sphindex_ /etc/munin/plugins/sphindex_index2
|
||||
#
|
||||
# If you run munin-node at different box than Sphinxsearch you can specify hostname and port options in munin-node.conf:
|
||||
#
|
||||
# [sphindex_*]
|
||||
# env.server 10.216.0.141
|
||||
# env.port 9312
|
||||
#
|
||||
#%# capabilities=autoconf
|
||||
#%# family=contrib
|
||||
|
||||
import os, sys, sphinxsearch
|
||||
progName = sys.argv[0]
|
||||
indexName = progName[progName.find("_")+1:]
|
||||
|
||||
if len(sys.argv) == 2 and sys.argv[1] == "autoconf":
|
||||
print "yes"
|
||||
elif len(sys.argv) == 2 and sys.argv[1] == "config":
|
||||
print "graph_title Sphinx index %s stats"%indexName
|
||||
print "graph_vlabel docs count"
|
||||
print "graph_category search"
|
||||
|
||||
print "documents_count.label Documents count in index"
|
||||
print "graph_args --base 1000 -l 0"
|
||||
else:
|
||||
if "server" in os.environ and os.environ["server"] != None:
|
||||
server = os.environ["server"]
|
||||
else:
|
||||
server = "localhost"
|
||||
|
||||
if "port" in os.environ and os.environ["port"] != None:
|
||||
try:
|
||||
port = int(os.environ["port"])
|
||||
except ValueError:
|
||||
port = 9312
|
||||
else:
|
||||
port = 9312
|
||||
|
||||
client = sphinxsearch.SphinxClient()
|
||||
client.SetServer(server, port)
|
||||
result = client.Query("", indexName)
|
||||
docCount = result["total_found"]
|
||||
|
||||
print "documents_count.value %d"%docCount
|
Loading…
Reference in New Issue
Block a user